[英]Setting Foreign Key restraints on Junction table with a compound primary key
我有一個連接表,用於存儲測試和測試中的問題之間的關系,並將testFK
和questionFK
設置為復合主鍵,以防止重復輸入。
連接表:
+--------+------------+
| testFK | questionFK |
+--------+------------+
| 7 | 1 |
+--------+------------+
| 7 | 2 |
+--------+------------+
| 7 | 3 |
+--------+------------+
| 8 | 4 |
+--------+------------+
| 8 | 5 |
+--------+------------+
| 8 | 6 |
+--------+------------+
我想做的事:
從test table
刪除testID
,我也希望從Junction Table
中刪除所有testFK=8
的行。
問題:
phpmyadmin不允許我將testFK
設置為test table
testID
的foreign key
。
處理這種情況的最佳方法是什么?
感謝您的輸入!
更新:創建代碼:
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;
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.