实现两个一对一表之间的唯一性

时间:2015-03-09 15:16:26

标签: mysql sql triggers foreign-keys unique-constraint

我有两个表彼此具有一对一关系,第二个表主键引用第一个表主键。对于每个表中的给定列,记录必须是唯一的。例如,如果我更改了我的架构以将两个表合并为一个,那就像UNIQUE INDEX my_unique_index (column1 ASC, column2 ASC)

据我了解,我不能在两个表之间使用唯一索引。也许是一个触发器?

如果在使用具有一对一关系的两个表时如何获得此功能?

2 个答案:

答案 0 :(得分:0)

只有这样才能做到才是触发器。在每次从每个表插入/更新之前,您需要确保它不会破坏您想要保留的唯一性约束。

答案 1 :(得分:0)

是否涉及AUTO_INCREMENT?如果是这样,请在不指定AI的情况下将LAST_INSERT_ID() - INSERT放入一个表中,然后使用该函数获取ID。然后插入另一张表。

没有人工智能?你有PK吗?然后,只需执行两个单独的INSERT。

是的,您可能希望在INSERT对周围使用BEGIN ... COMMIT。