0

我有两张桌子:

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 CASCADEUserChallenge.challengeID吗?

谢谢。

4

2 回答 2

2

你可以做个测试...

如果您从 Challenge 中删除该行,则会违反 UserChallenge 中对 challengeID 的约束。您还必须删除此表中的所有引用记录,或使用另一个(正确)值或使用 NULL 更新这些记录。当您想要删除引用记录时,您也可以使用 ON DELETE CASCADE。

于 2010-12-21T09:40:46.787 回答
1

DELETE CASCADE删除记录Challenge会导致UserChallenge删除所有子记录。

也许这有帮助:http ://en.wikipedia.org/wiki/Foreign_key#Referential_Actions

于 2010-12-21T09:40:07.457 回答