1

SQL Server 2005 に 2 つのテーブルがあります。

  • USER テーブル: ユーザーに関する情報など。
  • COUNTRY テーブル : 世界中の国全体のリストを保持します。
  • USER_COUNTRY テーブル: どのユーザーがどの郡を訪問したか、どの一致するか。UserID と CountryID を保持します。

たとえば、USER_COUNTRY テーブルは次のようになります。

+----+--------+-----------+
| ID | UserID | CountryID |
+----+--------+-----------+
|  1 |      1 |        34 |
|  2 |      1 |         5 |
|  3 |      2 |        17 |
|  4 |      2 |        12 |
|  5 |      2 |        21 |
|  6 |      3 |        19 |
+----+--------+-----------+

私の質問は次のとおりです。USER テーブルでユーザーが削除された場合、USER_COUNTRY テーブルの関連レコードを直接削除するにはどうすればよいですか。おそらく、Foreign Key Constains を使用して?

4

3 に答える 3

1

カスケード削除USER_COUNTRYを指定して設定する外部キーを定義する必要があります。USER.UserID

CREATE TABLE USER_COUNTRY (
    ...
    CONSTRAINT USER_COUNTRY_FK1 FOREIGN KEY (UserID)
        REFERENCES USER(UserID)
        ON DELETE CASCADE
);
于 2010-05-14T09:11:08.103 に答える
0

はい、外部キー関係の削除ルールをカスケードに設定できます。

于 2010-05-14T09:09:02.260 に答える
0

CASCADEが唯一の選択肢だと思います。しかし、このようなレコードを本当に削除したいですか? コンテキスト: 私はデータマニアです。

于 2010-05-14T09:16:56.590 に答える