1. 程式人生 > >Android 判斷SQLite資料庫中是否存在某一個表格: CREATE TABLE IF NOT EXISTS

Android 判斷SQLite資料庫中是否存在某一個表格: CREATE TABLE IF NOT EXISTS

安裝軟體時要初始化資料庫,通常的需求是新建表、索引、檢視、儲存過程等物件,插入初始資料。Oracle沒有drop table if exists或create table if not exists語法,所以需要自己處理。第一種情況:如果表存在,先刪除再建立。begin   for x in (select table_name from all_tables where owner=...



sqlite create table if not exists例子  谷歌


  4). "IF NOT EXISTS"從句:
    如果當前建立的資料表名已經存在,即與已經存在的表名、檢視名和索引名衝突,那麼本次建立操作將失敗並報錯。然而如果在建立表時加上"IF NOT EXISTS"從句,那麼本次建立操作將不會有任何影響,即不會有錯誤丟擲,除非當前的表名和某一索引名衝突。
    sqlite> CREATE TABLE
testtable (first_col integer);

    Error: table testtable already exists
    sqlite> CREATE TABLE IF NOT EXISTS testtable (first_col integer);

http://www.cnblogs.com/stephen-liu74/archive/2012/02/13/2321668.html

Android 判斷SQLite資料庫中是否存在某一個表格  

2013-03-23 20:09:15|  分類: Sqlite |舉報 |字號訂閱

有兩種方法,

第一種方法是:不需要知道表是否存在,在建立表的時候加上if not exists 例:create table if not exists myTable(...) ,這樣做的好處是,不需要知道表是否存在,只要每次都進行建立即可。因為裡面有判斷,如果表存在的時候,再執行這句不會發生重複建立表的情況。

第二種方法是:直接執行某個SQL語句,用try...catch來捕獲資料庫操作的異常。當異常表示資料庫表不存在的時候,再進行處理。例:

try{

Cursor c = getWritableDatabase().query("select * from myTable",null );

catch(Exception e) // 或者是 SQLiteException .

{//新增處理程式碼,例如:建立表。

}

第二種的方法不如第一種好,原因是:第二種寫起來比較麻煩,還有,如果有其它異常的時候,需要對異常來進行判別,並處理。

PS:

上面的E文中有一種方法是判斷query的返回值,那個別想了,我在測試的時候,如果表被刪除了,一到那裡就崩潰,只能通過try...catch的方法。

http://ningtukun.blog.163.com/blog/static/18654144520132238915882/