0
我有两个不相关的表,但每个人都有相同的列类型我叫“somefield”MySQL的多个外键约束
CREATE TABLE `table1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`somefield` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `somefield` (`somefield`),
)
CREATE TABLE `table2` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`somefield` int(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `somefield` (`somefield`)
)
之后我插入这两种表,我插入此表'somefield'的价值。
CREATE TABLE `table3` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`somefield` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `somefield` (`somefield`),
CONSTRAINT `FK_table3` FOREIGN KEY (`somefield`) REFERENCES `table1` (`somefield`) ON DELETE CASCADE ON UPDATE CASCADE
)
目前,如果我在表1中删除一行,同一行的表3中删除。我可以插入表1和做表3的插件没有任何问题,但如果我插入到表2,并试图插入表3我得到这个错误
完整性约束违规:1452不能添加或更新子行: 一个外键约束失败
我知道这是关于外键约束,因为它期望'somefield'值出现在table1中。我想知道的是如何添加另一个约束。
ALTER TABLE table3 ADD CONSTRAINT FK_table3 FOREIGN KEY (`somefield`) REFERENCES `table2` (`somefield`) ON DELETE CASCADE ON UPDATE CASCADE;
我需要创建2个表充当table1/table3和table2/table3之间的行为吗?