【发布时间】:2014-11-22 07:35:33
【问题描述】:
所以基本上我有以下问题要作为 oracle sql 数据库的一部分来实现:
table1(attr1, attr2)
table2(attr3, table1_attr1)
约束:一个 table2 元组只能有一些 table1_attr1,其中 table1 attr2 中的元组不为空。
我已经尝试了以下方法(以及其他被注释掉的可能性),但它显然不起作用,因为 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 独一无二。 我读过关于在某处制作函数的文章,但我对它们不是很熟悉。如果他们是唯一的选择,我会尝试。
【问题讨论】:
标签: sql oracle constraints