1
所以基本上我有以下問題,以實現作爲Oracle SQL數據庫的一部分:SQL約束檢查另一個表列
表1(attR1位,attR2位)
表2(attr3,table1_attr1)
約束:一個table2元組只能有一些table1_attr1,table1中的元組attr2不爲null。
我曾嘗試以下(連同其他註釋掉的可能性),但它顯然是行不通的,因爲attR2位是不是一個獨特的價值:
CREATE TABLE table1 (
attr1 VARCHAR(100) NOT NULL,
attr2 VARCHAR(200),
PRIMARY KEY(attr1)
);
CREATE TABLE table2 (
attr3 INTEGER NOT NULL,
table1_attr1 VARCHAR(100) NOT NULL,
table1_attr2 VARCHAR(50), --REFERENCES table1(attr2),
FOREIGN KEY (table1_attr1, table1_attr2) REFERENCES table1(attr1, attr2),
CONSTRAINT const_table1 CHECK(table1_attr2 IS NOT NULL),
PRIMARY KEY(attr3)
);
我需要一些幫助,因爲製作attR2位獨特不是一種選擇。 我已閱讀過有關製作某個功能的資訊,但我對它們並不十分熟悉。將嘗試它,如果他們是唯一的選擇。