我知道这里有很多这样的问题,但这并不是我要问的典型问题。我有一张这样的桌子:
CREATE TABLE example (
field1 INTEGER NOT NULL,
field2 INTEGER NOT NULL,
field3 TEXT,
PRIMARY KEY(field1,field2)
FOREIGN KEY(field2) REFERENCES example2(field2)
);
我要禁止的是一个 field3 有多个 field1,但允许的值具有相同的 field1 和 field3 但不同的 field2。事实上,我想要一个唯一的 field1 可用于每个 field3,但如果 field2 不同,则每个 field1 有多个 field3。
为了帮助你理解我的意思,我给你一些例子:
INSERT INTO example VALUES(1,1,"apple");
INSERT INTO example VALUES(1,2,"apple"); allowed
INSERT INTO example VALUES(2,1,"apple"); forbidden
INSERT INTO example VALUES(2,3,"apple"); forbidden
PS:PRIMARY_KEY(field1,field2,field3) 和 UNIQUE(field1,field3) 不是答案。