在 SQLite 中,資料庫物件(表格、索引、觸發器或檢視)由物件名稱和它所在的資料庫名稱識別。資料庫物件可能位於主資料庫、暫存資料庫或 附加資料庫 中。
DROP TABLE、DROP INDEX、DROP VIEW、DROP TRIGGER、REINDEX、ALTER TABLE 和許多其他指令的語法都允許使用者透過名稱或名稱和資料庫名稱的組合來指定資料庫物件。如果物件參考中未指定資料庫,SQLite 會在主資料庫、暫存資料庫和所有附加資料庫中搜尋名稱相符的物件。會先搜尋暫存資料庫,接著是主資料庫,最後是所有附加資料庫(依附加順序)。參考會解析為找到的第一個相符項。例如
/* Add a table named 't1' to the temp, main and an attached database */ ATTACH 'file.db' AS aux; CREATE TABLE t1(x, y); CREATE TEMP TABLE t1(x, y); CREATE TABLE aux.t1(x, y); DROP TABLE t1; /* Drop table in temp database */ DROP TABLE t1; /* Drop table in main database */ DROP TABLE t1; /* Drop table in aux database */
如果物件參考中指定了架構名稱,它必須是「main」、「temp」或附加資料庫的架構名稱。與其他 SQL 識別碼一樣,架構名稱不區分大小寫。如果指定了架構名稱,則只會在該架構中搜尋指定名稱的物件。
大多數物件參考只能解析為特定類型的物件(例如,作為 DROP TABLE 陳述式一部分的參考只能解析為表格物件,而不是索引、觸發器或檢視)。然而在某些情況下(例如 REINDEX),物件參考可以解析為多種類型的物件。在資料庫架構中搜尋指定名稱的物件時,永遠會忽略在參考情況下無法使用的物件類型。
此頁面最後修改於 2022-01-08 05:02:57 UTC