IOS SQLite資料庫判斷表是否存在

2021-06-22 12:08:49 字數 1352 閱讀 3302

sqlite資料庫中乙個特殊的名叫 sqlite_master 上執行乙個select查詢以獲得所有表的索引。每乙個 sqlite 資料庫都有乙個叫 sqlite_master 的表, 它定義資料庫的模式。 sqlite_master 表看起來如下:

create table sqlite_master (

type text,

name text,

tbl_name text,

rootpage integer,

sql text

);對於表來說,type 字段永遠是 『table』,name 字段永遠是表的名字。所以,要獲得資料庫中所有表的列表, 使用下列select語句:

select name from sqlite_master

where type=』table』

order by name;

對於索引,type 等於 『index』, name 則是索引的名字,tbl_name 是該索引所屬的表的名字。 不管是表還是索引,sql 欄位是原先用 create table 或 create index 語句建立它們時的命令文字。對於自動建立的索引(用來實現 primary key 或 unique 約束),sql欄位為null。

sqlite_master 表是唯讀的。不能對它使用 update、insert 或 delete。 它會被 create table、create index、drop table 和 drop index 命令自動更新。

臨時表不會出現在 sqlite_master 表中。臨時表及其索引和觸發器存放在另外乙個叫 sqlite_temp_master 的表中。sqlite_temp_master 跟 sqlite_master 差不多, 但它只是對於建立那些臨時表的應用可見。如果要獲得所有表的列表, 不管是永久的還是臨時的,可以使用類似下面的命令:

select name from

(select * from sqlite_master union all

select * from sqlite_temp_master)

where type=』table』

order by name

判斷乙個表是否存在

1.fmdb:

- (bool) istableok:(nsstring *)tablename

else }

return no; }

或者 - (int)i***isttable:(nsstring *)tablename

}[dbclose];

}return i***isttable;

}2.sqlite3直接判斷

-(bool)checkname:(nsstring *)nameelse

}

iOS SQLite資料庫使用

首先需要在專案中引用sqlite 3的開發包,下面是在iphone sdk 3.0下的目錄 developer platforms iphoneos.platform developer sdks iphoneos3.0.sdk usr lib libsqlite3.0.dylib 到這裡你需要事先...

iOS SQLite資料庫操作

首先介紹一下sqlite資料庫以及為什麼要用ta sqlite是一款輕型的嵌入式資料庫,它占用資源非常的低,在嵌入式裝置中,可能只需要幾百k的記憶體就夠了。它的處理速度比mysql postgresql這兩款著名的資料庫都還快。資料庫的儲存結構和excel很像,以表 table 為單位新建資料庫檔案...

iOS sqlite資料庫的基本操作

介紹 sqlite3 3是版本 是本地系統中的乙個小型資料庫,因為它沒有在資料維護和安全上做過多的操作,所以它儲存處理資料時,非常簡單方便,但是它是不安全和不可靠的,如果一旦誤操作刪除了資料,是沒有辦法恢復的 而sql server 和oracal這種資料庫屬於重量級的,它們都有備份機制,因此它們建...