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

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;