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.从数据库的响应:
Cant create table (errno: 150) 。