结构化类型中的结构化类型或复合属性可以是UNIQUE吗



结构化类型中的结构化类型或复合属性可以是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;小提琴这里

最新更新