SQLite的sqlite_master表
sqlite_master表是SQLite的系統(tǒng)表。該表記錄該數(shù)據(jù)庫中保存的表、索引、視圖、和觸發(fā)器信息。每一行記錄一個(gè)項(xiàng)目。在創(chuàng)建一個(gè)SQLIte數(shù)據(jù)庫的時(shí)候,該表會(huì)自動(dòng)創(chuàng)建。sqlite_master表包含5列。
type列記錄了項(xiàng)目的類型,如table、index、view、trigger。
name列記錄了項(xiàng)目的名稱,如表名、索引名等。
tbl_name列記錄所從屬的表名,如索引所在的表名。對(duì)于表來說,該列就是表名本身。
rootpage列記錄項(xiàng)目在數(shù)據(jù)庫頁中存儲(chǔ)的編號(hào)。對(duì)于視圖和觸發(fā)器,該列值為0或者NULL。
sql列記錄創(chuàng)建該項(xiàng)目的SQL語句。
由于sqlite_master表存儲(chǔ)所有的數(shù)據(jù)庫項(xiàng)目,所以可以通過該表判斷特定的表、視圖或者索引是否存在。例如,以下語句可以判斷user表是否存在。
select count(*) from sqlite_master where name='user' and type='table'