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;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
MySQL创建有外键的表要注意的:
1、只有InnoDB引擎才允许使用外键,所以数据库必须使用InnoDB引擎;
2、外键必须建立索引(INDEX),否则出现以下错误:
SQL执行错误#1005.从数据库的响应:
Can't create table (errno: 150)。
【编辑推荐】