簡體   English   中英

使用復合主鍵在Junction表上設置外鍵約束

[英]Setting Foreign Key restraints on Junction table with a compound primary key

我有一個連接表,用於存儲測試和測試中的問題之間的關系,並將testFKquestionFK設置為復合主鍵,以防止重復輸入。

連接表:

    +--------+------------+
    | 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 testIDforeign 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM