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)。
【编辑推荐】