我有两张桌子:
Challenge:
challengeID INTEGER PRIMARY KEY
...
和
UserChallenge:
ID INTEGER PRIMARY KEY
challengeID INTEGER NOT NULL
...
FOREIGN KEY(challengeid) REFERENCES challenge(challengeID)
如果我在挑战表上有一行,challengeID = 1,在UserChallenge表上有一行,challengeID = 1。
如果我从挑战中删除行,UserChallenge表会发生什么?我可以将ON DELETE CASCADE
与UserChallenge.challengeID
一起使用吗?
感谢。
答案 0 :(得分:2)
你可以做一个测试......
如果从Challenge中删除该行,则会违反UserChallenge中对challengeID的约束。您还必须删除此表中的所有引用记录,或使用其他(正确)值更新这些记录或使用NULL。如果要删除引用记录,也可以使用ON DELETE CASCADE。
答案 1 :(得分:1)
DELETE CASCADE
从Challenge
删除记录会导致UserChallenge
中的所有子记录被删除。
也许这会有所帮助:http://en.wikipedia.org/wiki/Foreign_key#Referential_Actions