SQLite的sqlite_master表
sqlite_master表是SQLite的系統(tǒng)表。該表記錄該數(shù)據(jù)庫(kù)中保存的表、索引哮笆、視圖、和觸發(fā)器信息汰扭。每一行記錄一個(gè)項(xiàng)目稠肘。在創(chuàng)建一個(gè)SQLIte數(shù)據(jù)庫(kù)的時(shí)候,該表會(huì)自動(dòng)創(chuàng)建萝毛。sqlite_master表包含5列项阴。
type列記錄了項(xiàng)目的類型,如table笆包、index环揽、view略荡、trigger。
name列記錄了項(xiàng)目的名稱歉胶,如表名汛兜、索引名等。
tbl_name列記錄所從屬的表名跨扮,如索引所在的表名序无。對(duì)于表來(lái)說(shuō),該列就是表名本身衡创。
rootpage列記錄項(xiàng)目在數(shù)據(jù)庫(kù)頁(yè)中存儲(chǔ)的編號(hào)帝嗡。對(duì)于視圖和觸發(fā)器,該列值為0或者NULL璃氢。
sql列記錄創(chuàng)建該項(xiàng)目的SQL語(yǔ)句哟玷。
由于sqlite_master表存儲(chǔ)所有的數(shù)據(jù)庫(kù)項(xiàng)目,所以可以通過(guò)該表判斷特定的表一也、視圖或者索引是否存在巢寡。例如,以下語(yǔ)句可以判斷user表是否存在椰苟。
select count(*) from sqlite_master where name='user' and type='table'