结构化类型中的结构化类型或复合属性可以是UNIQUE吗?
例如,这可能吗:
CREATE TYPE testType AS OBJECT (
attr1 INTEGER,
attr2 VARCHAR2(20),
attr3 VARCHAR(20) UNIQUE
);
结构化类型中的结构化类型或复合属性可以是唯一的吗?
不,语法不允许这样做。
但是,如果在对象派生表中使用它们,则可以使列(从对象属性派生(唯一。
CREATE TYPE testType AS OBJECT (
attr1 INTEGER,
attr2 VARCHAR2(20),
attr3 VARCHAR(20)
);
CREATE TABLE test_table OF testType(
attr3 CONSTRAINT test_table__attr3__u UNIQUE
);
然后:
INSERT INTO test_table (attr1, attr2, attr3 ) VALUES ( 1, 2, 3 );
INSERT INTO test_table (attr1, attr2, attr3 ) VALUES ( 4, 5, 3 );
给出错误:
ORA-00001: unique constraint (SCHEMA_NAME.TEST_TABLE__ATTR3__U) violated
db<gt;小提琴这里