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

数据库 MySQL
在MySQL数据库中,如果创建的表带有外键,那么就有一些问题值得我们注意,下面就让一起来了解一下。

MySQL创建有外键的表,有一些注意事项,下面就为您介绍一些和MySQL创建有外键的表相关的问题,供您参考学习之用。

创建以下数据库表:

  1. CREATE TABLE `roottb` (  
  2.  
  3. `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,  
  4.  
  5. `data` VARCHAR(100) NOT NULL DEFAULT '',  
  6.  
  7. PRIMARY KEY (`id`)  
  8.  
  9. TYPE=InnoDB;  
  10.  
  11. CREATE TABLE `subtb` (  
  12.  
  13. `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,  
  14.  
  15. `rootid` INT(11) UNSIGNED NOT NULL DEFAULT '0',  
  16.  
  17. `data` VARCHAR(100) NOT NULL DEFAULT '',  
  18.  
  19. PRIMARY KEY (`id`),  
  20.  
  21. INDEX (`rootid`),  
  22.  
  23. FOREIGN KEY (`rootid`) REFERENCES roottb(`id`) ON DELETE CASCADE  
  24.  
  25. TYPE=InnoDB;  
  26.  

MySQL创建有外键的表要注意的:

1、只有InnoDB引擎才允许使用外键,所以数据库必须使用InnoDB引擎;

2、外键必须建立索引(INDEX),否则出现以下错误:

SQL执行错误#1005.从数据库的响应:
Can't create table (errno: 150)。
 

 

 

【编辑推荐】

MySQL遍历数据表的方法

MySQL批量导入数据的实现

php mysql创建临时表

mysql快速建表的方法

深入研究MySQL删除多表数据

责任编辑:段燃 来源: 互联网
相关推荐

2011-05-26 17:37:11

Ajax

2010-04-22 12:07:37

Oracle Spat

2023-12-13 15:20:45

数据中心云计算人工智能

2015-08-19 15:33:41

布线技术

2011-08-08 15:06:36

布线综合布线智能家居

2011-07-21 15:40:24

iPhone 内存管理 对象

2010-10-08 09:38:42

mysql修改表

2010-08-31 14:33:46

DB2游标

2009-06-10 15:36:25

ubuntu netb开发过程

2019-07-29 14:27:44

MySQLWindows数据库

2010-05-26 17:05:13

SVN提交

2023-08-25 10:49:37

数据中心服务器

2020-05-26 16:25:05

云计算云迁移IT

2012-04-16 10:16:07

云计算私有云IaaS

2009-12-22 14:46:59

NAT路由器

2010-07-15 14:47:05

Perl开发

2010-02-25 10:04:33

MySQL执行SQL语

2017-05-10 17:00:22

灾难恢复云计算数据中心

2009-11-14 09:59:46

2010-04-21 10:04:33

Oracle移植
点赞
收藏

51CTO技术栈公众号