【问题标题】:ADD combination constraint into a dabase table将组合约束添加到数据库表中
【发布时间】:2020-12-17 23:10:39
【问题描述】:

我想将表中的列组合成唯一的,它们不能有任何重复值。

例如,我有一个Person 表,其中包含姓名、年龄、地址和电话号码。

我希望(name, age, phone_number) 的组合必须是唯一的。

表人包含这些数据:

"Name1"|22|"adresse1"|000000

因此组合 (''Name1'' 和 22 和 000000) 必须是唯一的,但如果只有其中一个发生更改,例如 ("name2",22,000000) 将允许向表中插入数据.

请问如何使用 SQL 来管理?

【问题讨论】:

  • 组合 - 不是“组合”.....

标签: sql constraints unique


【解决方案1】:

如果您希望列或列组合是唯一的,您可以实现唯一约束或索引(它们在功能上是等效的):

create unique index unq_t_col1_col2_col3 on t(col1, col2, col3);

对于一个约束:

alter table t add constraint unq_t_col1_col2_col3
    unique (col1, col2, col3);

任何尝试将值插入到已存在的列中都会导致错误,任何尝试使用不同行中的值更新列也会导致错误。

【讨论】:

  • 谢谢,我会测试一下,但我想知道这两个指令有什么区别?
  • @GhàithMn 。 . .没有功能上的区别。命名约束意味着涉及约束的错误消息返回约束名称。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 2018-08-04
  • 2018-03-06
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多