0
所以我想有一個整數ID的主場自動增量。然後我還想要另一個帶有文本字段的鍵。兩個條目不能具有相同的ID,也不能具有相同的文本字段。問題是,如果ID不同但文本字段相同,我仍然不希望它們插入。不幸的是,創建一個帶有兩個主鍵的表格意味着它可以被插入。無論如何,除了兩個主鍵之外還有其他表達方式嗎?插入到Android數據庫的密鑰
所以我想有一個整數ID的主場自動增量。然後我還想要另一個帶有文本字段的鍵。兩個條目不能具有相同的ID,也不能具有相同的文本字段。問題是,如果ID不同但文本字段相同,我仍然不希望它們插入。不幸的是,創建一個帶有兩個主鍵的表格意味着它可以被插入。無論如何,除了兩個主鍵之外還有其他表達方式嗎?插入到Android數據庫的密鑰
一個表只能有一個主鍵。當你寫
CREATE TABLE T1 ... PRIMARY KEY (A, B)
你實際上並沒有創建兩個主鍵,而是一個複合(即多列)主鍵。在這種情況下,這意味着兩行不能共享相同的值A和B。
如果你需要A和B都是唯一的,那麼你需要使用一個UNIQUE約束(或者,或者,唯一索引)。
UNIQUE約束類似於PRIMARY KEY約束,不同的是一個單一的表可以具有任意數量的UNIQUE約束。對於表上的每個UNIQUE約束,每行必須包含由UNIQUE約束標識的列中唯一值的組合。
例如:
CREATE TABLE T1 (A INTEGER PRIMARY KEY, B INTEGER UNIQUE ...)