我试图找到一些解决方案,但我无法解决。
让我们看看下面的表格,这个表格的每一行只需要分配给一个FK(columnfk1或columnfk2)(没有意义分配给两个或没有):
CREATE TABLE example(
id INT UNIQUE AUTO_INCREMENT
,name VARCHAR(255)
,columnfk1 INT
,columnfk2 INT
,FOREIGN KEY (columnfk1) REFERENCES example1(columnfk1)
,FOREIGN KEY (columnfk2) REFERENCES example2(columnfk2)
);
是否有一些规则可以保证每一行都会分配一个 FK ? 我使用的是MYSQL 5
答案 0 :(得分:0)
不幸的是,MySQL并不支持check
约束,因为这可以使用这样的约束轻松处理:
check (columnfk1 is null or columnfk2 is null);
因此,使用此数据结构在数据库中实现此约束的唯一方法是使用触发器。