【问题标题】:unique constraint grouped by other column由其他列分组的唯一约束
【发布时间】:2021-03-26 00:17:07
【问题描述】:

我有一个表,它有一个father_id 列和一个serial_number 列, 我想通过父亲 id 对序列号创建一个唯一约束。

表示具有相同father_id的行不能具有相同的serial_number,但具有不同father_id的行可以具有相同的serial_number。

【问题讨论】:

    标签: sql oracle ddl unique-constraint composite-key


    【解决方案1】:

    重新表述该要求,您希望father_idserial_number 的组合是唯一的。一旦要求这样表述,就更容易转换为 SQL:

    ALTER TABLE mytable
    ADD CONSTRAINT mytable_unq UNIQUE (father_id, serial_number);
    

    【讨论】:

      【解决方案2】:

      这看起来像一个复合唯一键。这是使用唯一索引的一种方法:

      create unique index myindex on mytable(father_id, serial_number);
      

      或者在 create table 语句中,带有唯一约束:

      create table mytable (
          father_id int,
          serial_number int,
          constraint myconstraint unique (father_id, serial_number)
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        • 2012-08-10
        • 2010-10-11
        • 1970-01-01
        相关资源
        最近更新 更多