MySQL

mysql创建表设置外键 MySQL创建有外键的表需要注意的事项

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)。