代码之家  ›  专栏  ›  技术社区  ›  Ahmet Altun

SQL Server删除-外键

  •  1
  • Ahmet Altun  · 技术社区  · 16 年前

    我在SQL Server 2005中有两个表:

    • 用户表:关于用户的信息等。
    • 国家表:保存世界上所有国家的列表。
    • 用户国家表:哪个匹配,哪个用户访问过哪个县。 它包含,userid和countryid。

    例如,用户国家表如下:

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

    我的问题是 :在用户表中删除用户时,如何直接删除用户国家表中的关联记录。也许,通过使用外键constaint?

    3 回复  |  直到 13 年前
        1
  •  0
  •   Rockcoder    16 年前

    是的,可以将外键关系删除规则设置为“层叠”。

        2
  •  1
  •   Álvaro González    16 年前

    您必须在 USER_COUNTRY 那指向 USER.UserID 并设置级联删除:

    CREATE TABLE USER_COUNTRY (
        ...
        CONSTRAINT USER_COUNTRY_FK1 FOREIGN KEY (UserID)
            REFERENCES USER(UserID)
            ON DELETE CASCADE
    );
    
        3
  •  0
  •   super9    16 年前

    我想卡斯卡是你唯一的选择。但您真的想硬删除这样的记录吗?上下文:我是一个数据域。

    推荐文章