2011-11-26 65 views
0

所以我想有一個整數ID的主場自動增量。然後我還想要另一個帶有文本字段的鍵。兩個條目不能具有相同的ID,也不能具有相同的文本字段。問題是,如果ID不同但文本字段相同,我仍然不希望它們插入。不幸的是,創建一個帶有兩個主鍵的表格意味着它可以被插入。無論如何,除了兩個主鍵之外還有其他表達方式嗎?插入到Android數據庫的密鑰

回答

1

一個表只能有一個主鍵。當你寫

CREATE TABLE T1 ... PRIMARY KEY (A, B) 

你實際上並沒有創建兩個主鍵,而是一個複合(即多列)主鍵。在這種情況下,這意味着兩行不能共享相同的值A和B

如果你需要A和B都是唯一的,那麼你需要使用一個UNIQUE約束(或者,或者,唯一索引)。

SQLite documentation

UNIQUE約束類似於PRIMARY KEY約束,不同的是一個單一的表可以具有任意數量的UNIQUE約束。對於表上的每個UNIQUE約束,每行必須包含由UNIQUE約束標識的列中唯一值的組合。

例如:

CREATE TABLE T1 (A INTEGER PRIMARY KEY, B INTEGER UNIQUE ...)