0

私は2つのテーブルを持っています:

Challenge:

challengeID INTEGER PRIMARY KEY
...

UserChallenge:

ID INTEGER  PRIMARY KEY
challengeID INTEGER NOT NULL
...
FOREIGN KEY(challengeid) REFERENCES challenge(challengeID)

チャレンジ テーブルに challengeID = 1 の行が 1 つあり、UserChallenge テーブルに challengeID = 1 の行が 1 つあるとします。

チャレンジから行を削除すると、UserChallenge テーブルはどうなりますか? ON DELETE CASCADEと一緒に使ってもUserChallenge.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 に答える