比方创立两个简略的表,如下。
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;