首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >1)无法在DELETE SET NULL或DELETE CASCADE上创建外键2)无法创建DELETE CASCADE

1)无法在DELETE SET NULL或DELETE CASCADE上创建外键2)无法创建DELETE CASCADE
EN

Stack Overflow用户
提问于 2014-01-23 22:39:10
回答 2查看 3K关注 0票数 0

我无法在DELETE CASCADE ON UPDATE CASCADE上添加外键约束。

我使用两个简单的表。

TAB1有两列: int(10) unsigned NOT NULL AUTOINCREMENT和data int(10) unsigned NOT NULL。

TAB2有两列: ID int(10) unsigned NOT NULL AUTOINCREMENT和FK int(10) unsigned NOT NULL。

我可以用"ON DELETE RESTRICT“在TAB1中的列ID上从表TAB2中的列FK创建外键。

但是我不能用"ON DELETE CASCADE“或"ON DELETE SET NULL”创建这样的键。错误是"#1215 -无法添加外键约束“。

我尝试过带符号,NULL,int(4)...ets.请勿取消错误所在位置。

我在一个月前用CASCADE成功创建的惟一外键(tcfkowner)在表tcalendar ADD REFERENCES (tcid)中。

我不理解在DELETE CASCADE上的意思是,如果我删除用户,日历中指向该用户的行也会被删除。

相反,外键似乎限制了其父级的删除:我不能从表tuser中删除由外键(tcfkowner)指向的表tcalendar中的任何行。错误消息:

“MySQL说:文档

1451 -无法删除或更新父行:外键约束失败(gintare_calendartcalendar,constraint tcalendar_ibfk_1 foreign key (tcfkowner) REFERENCES tuser (tcid))“。

EN

回答 2

Stack Overflow用户

发布于 2014-01-23 23:20:11

主表和明细表中的两个字段必须相同,请先检查。

尝试使用此脚本创建表并添加外键-

代码语言:javascript
运行
复制
CREATE TABLE tab1 (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  data int(10) UNSIGNED NOT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB;

CREATE TABLE tab2 (
  id int(10) UNSIGNED NOT NULL,
  fk int(10) UNSIGNED NOT NULL
)
ENGINE = INNODB;

ALTER TABLE tab2
  ADD CONSTRAINT FK_tab2_tab1_id FOREIGN KEY (fk)
    REFERENCES tab1(id) ON DELETE CASCADE ON UPDATE RESTRICT;

或者试试这个-

代码语言:javascript
运行
复制
CREATE TABLE tab1 (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  data int(10) UNSIGNED NOT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB;

CREATE TABLE tab2 (
  id int(10) UNSIGNED NOT NULL,
  fk int(10) UNSIGNED NOT NULL,
  CONSTRAINT FK_tab2_tab1_id FOREIGN KEY (fk)
  REFERENCES tab1 (id) ON DELETE CASCADE ON UPDATE RESTRICT
)
ENGINE = INNODB;
票数 0
EN

Stack Overflow用户

发布于 2015-12-27 10:12:30

不能添加ON DELETE SET null,因为TAB1中的设置字段设置为非NULL。您可以通过更改层叠或将字段设置为允许空值来修复此问题。希望对我的英语有所帮助和抱歉

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21311232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档