ここにそのような質問がたくさんあることは知っていますが、それは私が尋ねている典型的なものではありません. 私はそのようなテーブルを手に入れました:
CREATE TABLE example (
field1 INTEGER NOT NULL,
field2 INTEGER NOT NULL,
field3 TEXT,
PRIMARY KEY(field1,field2)
FOREIGN KEY(field2) REFERENCES example2(field2)
);
禁止したいのは、1 つのフィールド 3 に対して複数のフィールド 1 を使用することですが、フィールド 1 とフィールド 3 が同じでフィールド 2 が異なる許可された値を保持することです。実際、field3ごとに一意のfield1を使用できますが、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) は答えではありません。