Mysql 使用复合主键在连接台上设置外键约束
我有一个连接表,存储测试和测试中的问题之间的关系,Mysql 使用复合主键在连接台上设置外键约束,mysql,phpmyadmin,junction-table,Mysql,Phpmyadmin,Junction Table,我有一个连接表,存储测试和测试中的问题之间的关系,testFK和questionFK设置为复合主键,以防止重复条目 连接表: +--------+------------+ | testFK | questionFK | +--------+------------+ | 7 | 1 | +--------+------------+ | 7 | 2 | +--------+-----
testFK
和questionFK
设置为复合主键,以防止重复条目
连接表:
+--------+------------+
| testFK | questionFK |
+--------+------------+
| 7 | 1 |
+--------+------------+
| 7 | 2 |
+--------+------------+
| 7 | 3 |
+--------+------------+
| 8 | 4 |
+--------+------------+
| 8 | 5 |
+--------+------------+
| 8 | 6 |
+--------+------------+
我想做什么:
从测试表
中删除testID
后,我希望从连接表
中删除testFK=8
的所有行
问题:
phpmyadmin不允许我将testFK
设置为测试表中testID
的外键
处理这种情况的最佳方法是什么
谢谢你的意见
更新:
创建代码:
CREATE TABLE IF NOT EXISTS `junc_test_question` (
`testFK` int(11) NOT NULL,
`questionFK` int(11) NOT NULL,
`ordinal` int(3) NOT NULL DEFAULT '1',
PRIMARY KEY (`testFK`,`questionFK`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
可能是这样回答的:@MortenSickel我在尝试此操作时遇到了相同的错误:#1452-无法添加或更新子行:外键约束失败(db\u assessment
,约束testFK
外键(testFK
)引用test
(testID
)请发布您的创建表代码您可以为此创建触发器可能是这样回答的:@MortenSickel我在尝试此操作时遇到了相同的错误:#1452-无法添加或更新子行:外键约束失败(db#u assessment
sql-2510_69
,约束testFK
外键(testFK
)参考test
(testID
)发布您的创建表代码请您为其创建触发器请解释您的代码如何提供问题的解决方案。这有助于OP理解和应用您的代码,也有助于未来的搜索者。当条目删除删除\u测试\u表时,请删除与测试\u表相关的所有条目。请解释您的代码如何提供问题的解决方案。这有助于OP理解和应用您的代码,也有助于未来的搜索者。当条目删除删除\u test\u表时,它将删除与test\u表连接的所有条目
DROP TRIGGER remove_test_table
GO
CREATE TRIGGER remove_test_table
FOR DELETE
AS
DELETE FROM test_table WHERE testFK IN (SELECT testFK FROM deleted);
GO