我对sql有这种问题:

表1:ID_1(主键)| NAME |姓氏|电子邮件...
表2:ID_2(主键)| NAME2 | LASTNAME2 |电子邮件...

通常使用约束,可以将其列为表2中的列
(例如NAME 2)作为NAME的外键。

一般关系是一对多的。这是表1的NAME列中的一个值,在表2的NAME2列中使用了很多次。

现在,我想要实现的是使规则一对一,因此我不能在表2的表1中有重复的NAME值。

创建表时是否需要触发器或可以通过约束设置它?

最佳答案

实现此步骤:


Create foreign key constraint
Create unique constraint


这可以在创建表时全部完成。

CREATE TABLE table2 (
  ...,
  name2 varchar(255),
  FOREIGN KEY (name2) REFERENCES table1(name),
  UNIQUE (name2)
);


如果您已经有了该表,请改用ALTER TABLE



尝试插入表中已有的name2值的行时,将引发错误。

关于mysql - 外键引用值仅使用一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35113371/

10-12 14:17