sql - 结构化类型中的结构化类型或复合属性可以是唯一的吗?
问题描述
结构化类型中的结构化类型或复合属性可以是唯一的吗?
例如,这是否可能:
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<>在这里摆弄
推荐阅读
- javascript - React Styled Component 不显示正确的输出
- winapi - 我如何向acl添加权限?
- reactjs - 如何使用 Nextjs 和外部 REST API 执行 oauth
- python - cbind2(1, newx) %*% nbeta 中的错误:Cholmod 错误-R 中的套索回归错误
- javafx - Javafx如何在鼠标滚轮悬停在vbox /窗口上时加速滚动条和滚动
- sql - PostgresSQL/SQL 查询
- c# - c# 处理跨国DateTime时区
- javascript - 在打字稿中循环
- vhdl - 如何找到 RTL 代码支持的最大频率?
- typescript - Typescript中的“typeof class”有什么等价物吗?