关于mysql:MySQL无法添加外键error-code-1215-cannot-add-foreign-key-constraint

比方创立两个简略的表,如下。

CREATE table clazz(
    id INT AUTO_INCREMENT,~~~~
    name varchar(20) NOT NULL,
    total INT UNSIGNED NOT NULL,
    PRIMARY KEY(id)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE table student(
    id INT AUTO_INCREMENT,
    name varchar(20) not null,
    age INT  NOT NULL,
    clazz_id INT,
    PRIMARY KEY(id),
    FOREIGN KEY(clazz_id) references clazz(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

student表就会无奈创立,会显示

起因是被援用的外键,必须是非空的,不然是无奈援用的。

把 clazz 表的 id 改为 not null ,即可。如下

 CREATE table clazz(
    id INT NOT NULL AUTO_INCREMENT,
    name varchar(20) NOT NULL,
    total INT UNSIGNED NOT NULL,
    PRIMARY KEY(id)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;
 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理