1

我在 SQL Server 2005 中有两个表:

  • 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 表中的关联记录。也许,通过使用外键约束?

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 回答