【问题标题】:Error message with FOREIGN KEY REFERENCES带有 FOREIGN KEY REFERENCES 的错误消息
【发布时间】:2013-02-06 14:02:59
【问题描述】:

我正在尝试创建一个链接到多个角色的表。 该表称为 UserRoles,只有两列。

第一列包含对用户的引用 第二列包含指向角色的链接

您可能会在底部注意到,我使用了 FOREIGN KEY REFERENCES,但我不断收到错误消息

执行查询时出现以下错误:

服务器:消息 1770,级别 16,状态 0,行 1 外键 'FK_UserRoles_user___70DDC3D8' 引用无效列 'user_id' 在引用的表“MyUsers”中。

无法创建约束。查看以前的错误。

有没有更好的方法来做到这一点?

CREATE TABLE MyUsers
(
id                INT          IDENTITY(1,1)PRIMARY KEY,
user_logon_id     VARCHAR(30)  NOT NULL,
user_full_name    VARCHAR(30)  NULL,
user_description  VARCHAR(125) NULL,
user_password     VARCHAR(125) NOT NULL,
);

INSERT INTO MyUsers (user_logon_id, user_full_name, user_description, user_password) VALUES ('mcobery', 'Marc Cobery',

CREATE TABLE MyRole
(
myrole_id         INT          IDENTITY(1,1)PRIMARY KEY,
role_name         VARCHAR(30)  NOT NULL,
role_description  VARCHAR(50)  NULL,
);

INSERT INTO MyRole (role_name, role_description) VALUES ('administrator', ' Administrator of the web site');

INSERT INTO MyRole (role_name, role_description) VALUES ('user', ' User of the web site');

CREATE TABLE UserRoles
(
user_id int FOREIGN KEY REFERENCES MyUsers(user_id),
role_id int FOREIGN KEY REFERENCES MyRole(role_id),
);

【问题讨论】:

    标签: sql-server foreign-keys create-table


    【解决方案1】:

    应该像下面这样

    CREATE TABLE UserRoles
     (
        user_id int FOREIGN KEY REFERENCES MyUsers(id),
        role_id int FOREIGN KEY REFERENCES MyRole(myrole_id),
     );
    

    MyUsers 表中不存在 user_id 列

    【讨论】:

    • 做到了!感谢您澄清这一点!这很有意义。
    【解决方案2】:

    您的表格应如下所示:

    CREATE TABLE UserRoles
    (
    user_id int FOREIGN KEY REFERENCES MyUsers(id),
    role_id int FOREIGN KEY REFERENCES MyRole(myrole_id),
    );
    

    这是创建引用时的规则:

    Column_Name DATATYPE FOREIGN KEY REFERENCES ParentTableName(parentColumnName)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 2016-07-12
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多