作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试一些看似简单的事情,但我一直遇到相同的错误“无法添加外键约束”,有人可以帮助我吗?我正在使用带有 sql 的工作台
drop table if exists table2;
create table if not exists table2(
id_kind int not null,
id_bod int not null,
id_doc int not null,
primary key (id_kind, id_bod, id_doc)
)engine=InnoDB default charset=latin1;
drop table if exists table1;
create table if not exists table1(
id_mov int not null,
id_kind int not null,
id_prod int,
id_bod int not null,
id_doc int not null,
primary key (id_mov),
key id_kind (id_kind),
key id_bod (id_bod),
key id_doc (id_doc),
foreign key table1 (id_kind) references table2 (id_kind),
foreign key table1 (id_bod) references table2 (id_bod),
foreign key table1 (id_doc) references table2 (id_doc)
)engine=InnoDB default charset=latin1;
最佳答案
我很确定您正在尝试将外键
约束
添加到错误的表中。据推测 table2
包含 table1
引用的类型。
您必须重新排序代码,id_kind
可能应该是 table2
的主键
,并且您需要 上的索引
:table1
中的 >id_kind
drop table if exists table2;
create table if not exists tabla2(
id_kind int not null,
primary key (id_kind)
)engine=InnoDB default charset=latin1;
drop table if exists table1;
create table if not exists table1(
id_mov int not null,
id_kind int not null,
id_prod int,
primary key (id_mov),
key id_kind (id_kind),
foreign key table1_ibfk_1 (id_kind) references table2 (id_kind)
)engine=InnoDB default charset=latin1;
更新
现在看起来您想要一个复合外键,请为您的 table1 尝试此操作:
drop table if exists table1;
create table if not exists table1(
id_mov int not null,
id_kind int not null,
id_prod int,
id_bod int not null,
id_doc int not null,
primary key (id_mov),
key id_kind_id_bod_id_doc (id_kind, id_bod, id_doc),
foreign key table1_ibfk_1 (id_kind, id_boc, id_doc)
references table2 (id_kind, id_boc, id_doc),
)engine=InnoDB default charset=latin1;
我仍然不确定这些表代表什么,或者您想要实现什么。
您使用KEY
(INDEX
的同义词)行在表中设置一个INDEX
,FOREIGN KEY
使用。
关于mysql - 无法在简单代码上添加外键约束请帮忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823473/
嗨,我是第一次玩 Pig,我很好奇如何处理将一个字段拆分成多个其他字段。 我有一个包,A,如下图: grunt> Dump A; (text, text, Mon Mar 07 12:00:00 CD
如何添加架构中未定义的固定字段(例如日期或月份)?我运行了以下 pig 脚本以将固定日期添加到我的结果表中,并收到以下错误消息:Invalid field projection。方案中不存在投影字段
我是一名优秀的程序员,十分优秀!