MySQL创建有外键的表,有一些注意事项,下面就为您介绍一些和MySQL创建有外键的表相关的问题,供您参考学习之用。
创建以下数据库表:
CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `data` VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) TYPE=InnoDB; CREATE TABLE `subtb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `rootid` INT(11) UNSIGNED NOT NULL DEFAULT '0', `data` VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`), INDEX (`rootid`), FOREIGN KEY (`rootid`) REFERENCES roottb(`id`) ON DELETE CASCADE ) TYPE=InnoDB;
MySQL创建有外键的表要注意的:
1、只有InnoDB引擎才允许使用外键,所以数据库必须使用InnoDB引擎;
2、外键必须建立索引(INDEX),否则出现以下错误:
SQL执行错误#1005.从数据库的响应:
Can't create table (errno: 150)。