免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3925 | 回复: 2
打印 上一主题 下一主题

为什么重建同名的外键表会失败 [复制链接]

论坛徽章:
13
CU大牛徽章
日期:2013-03-14 14:14:082016科比退役纪念章
日期:2016-07-22 11:15:35数据库技术版块每日发帖之星
日期:2016-05-27 06:20:002015亚冠之吉达阿赫利
日期:2015-08-05 10:06:542015年亚洲杯之韩国
日期:2015-04-01 16:05:42双鱼座
日期:2014-11-13 11:04:24丑牛
日期:2014-07-25 17:29:54子鼠
日期:2014-04-25 12:25:45丑牛
日期:2014-04-17 08:35:48巨蟹座
日期:2014-04-16 16:50:05CU大牛徽章
日期:2013-03-14 14:14:29CU大牛徽章
日期:2013-03-14 14:14:26
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-24 14:08 |只看该作者 |倒序浏览
本帖最后由 hmchzb19 于 2016-05-24 14:08 编辑

1. 我先是建了两个表。
  1. CREATE TABLE employee(
  2.         employee_id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.         last_name VARCHAR(30) NOT NULL,
  4.         first_name VARCHAR(30) NOT NULL,
  5.         email VARCHAR(100) NOT NULL,
  6.         hire_date DATE NOT NULL,
  7.         notes MEDIUMTEXT,
  8.         PRIMARY KEY(employee_id),
  9.         INDEX(last_name),
  10.         UNIQUE(email)
  11.         )ENGINE=InnoDB;
  12. CREATE TABLE address(
  13.         employee_id int(10) UNSIGNED NOT NULL,
  14.         address VARCHAR(50) NOT NULL,
  15.         city VARCHAR(30) NOT NULL,
  16.         state CHAR(2) NOT NULL,
  17.         postcode CHAR(5) NOT NULL,
  18.         FOREIGN KEY(employee_id)
  19.         REFERENCES employee(employee_id) )
  20.         ENGINE=InnoDB;
复制代码
然后我drop 了表address, 打算重建这个表。
  1. SET FOREIGN_KEY_CHECKS = 0;
  2. drop table address;
复制代码
重建表就一直报错。
  1. mysql> CREATE TABLE address(
  2.     -> employee_id int(10) UNSIGNED NOT NULL,
  3.     -> address VARCHAR(50) NOT NULL,
  4.     -> city VARCHAR(30) NOT NULL,
  5.     -> state CHAR(2) NOT NULL,
  6.     -> postcode CHAR(5) NOT NULL,
  7.     -> FOREIGN KEY(employee_id)
  8.     -> REFERENCES employee(employee_id) on update cascade ON DELETE CASCADE)
  9.     -> ENGINE=InnoDB;
  10. ERROR 1005 (HY000): Can't create table 'sakila.address' (errno: 150)
复制代码
为什么?
因为我没有删除干净什么东西吗?

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-23 06:20:0015-16赛季CBA联赛之八一
日期:2017-10-26 17:58:2515-16赛季CBA联赛之北控
日期:2017-11-02 10:50:56
2 [报告]
发表于 2016-05-24 14:24 |只看该作者
运行了,没报错。

论坛徽章:
13
CU大牛徽章
日期:2013-03-14 14:14:082016科比退役纪念章
日期:2016-07-22 11:15:35数据库技术版块每日发帖之星
日期:2016-05-27 06:20:002015亚冠之吉达阿赫利
日期:2015-08-05 10:06:542015年亚洲杯之韩国
日期:2015-04-01 16:05:42双鱼座
日期:2014-11-13 11:04:24丑牛
日期:2014-07-25 17:29:54子鼠
日期:2014-04-25 12:25:45丑牛
日期:2014-04-17 08:35:48巨蟹座
日期:2014-04-16 16:50:05CU大牛徽章
日期:2013-03-14 14:14:29CU大牛徽章
日期:2013-03-14 14:14:26
3 [报告]
发表于 2016-05-24 14:35 |只看该作者
是的,我后来发现问题了,我本来有一个表也叫address,被我drop table if exist误删了。
然后我建这个表就一直报错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP