我的问题是我必须创建具有外键的表,并且三个外键中的一个必须是NOT NULL并且rest必须为NULL。 MySQL中有什么东西可以解决它吗? 迈克尔。
答案 0 :(得分:1)
避免可以为空的外键 - 它们有许多问题和缺点。将这些列放在单独的表中通常更容易也更好,这样在没有值时就不必为它们创建空值。这应该是默认方法:每个不同案例的普通表格,除非你有一些特殊的理由将这三个列合并到一个表中。
答案 1 :(得分:0)
CREATE TABLE parent
(
id INT NOT NULL, PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child
(
id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
) ENGINE=INNODB;