gpt4 book ai didi

mysql - 允许在两个 FK 列之间只分配一个值 MYSQL

转载 作者:行者123 更新时间:2023-11-30 23:01:04 25 4
gpt4 key购买 nike

我试图找到一些解决方案,但我找不到。

假设我们有下面的表格,该表格的每一行只需要分配给一个 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

最佳答案

不幸的是,MySQL 不支持 check 约束,因为使用这样的约束可以轻松处理:

check (columnfk1 is null or columnfk2 is null);

因此,您可以使用此数据结构在数据库中实现此约束的唯一方法是使用触发器。

关于mysql - 允许在两个 FK 列之间只分配一个值 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com