将组合约束添加到数据库中 table
ADD combination constraint into a dabase table
我想在 table 中创建一个唯一的列组合,它们不能有任何重复值。
例如,我有一个 table 的 Person
,其中包含姓名、年龄、地址和 phone_number。
我希望 (name, age, phone_number)
的组合必须是唯一的。
table 人包含此数据:
"Name1"|22|"adresse1"|000000
所以组合 (''Name1'' 和 22 和 000000) 必须是唯一的,但如果只有其中一个发生变化,例如 ("name2",22,000000) 它将被允许插入数据到 table.
请问我如何使用 SQL 来管理它?
如果您希望一个列或列的组合是唯一的,您可以实现唯一约束或索引(它们在功能上是等效的):
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);
任何尝试将值插入到已存在的列都将导致错误,任何尝试使用不同行中的值更新列也是如此。
我想在 table 中创建一个唯一的列组合,它们不能有任何重复值。
例如,我有一个 table 的 Person
,其中包含姓名、年龄、地址和 phone_number。
我希望 (name, age, phone_number)
的组合必须是唯一的。
table 人包含此数据:
"Name1"|22|"adresse1"|000000
所以组合 (''Name1'' 和 22 和 000000) 必须是唯一的,但如果只有其中一个发生变化,例如 ("name2",22,000000) 它将被允许插入数据到 table.
请问我如何使用 SQL 来管理它?
如果您希望一个列或列的组合是唯一的,您可以实现唯一约束或索引(它们在功能上是等效的):
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);
任何尝试将值插入到已存在的列都将导致错误,任何尝试使用不同行中的值更新列也是如此。