【问题标题】:Can structured types or composite attributes within a structured type be UNIQUE?结构化类型中的结构化类型或复合属性可以是唯一的吗?
【发布时间】:2021-03-19 17:41:47
【问题描述】:

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

例如,这可能吗:

CREATE TYPE testType AS OBJECT (
  attr1 INTEGER,
  attr2 VARCHAR2(20),
  attr3 VARCHAR(20) UNIQUE
);

【问题讨论】:

    标签: sql oracle types constraints unique


    【解决方案1】:

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

    不,syntax 不允许这样做。

    但是,如果您在对象派生表中使用它们,那么您可以使列(从对象属性派生)唯一。

    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小提琴here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多