sql-server - 带有 FOREIGN KEY REFERENCES 的错误消息

标签 sql-server foreign-keys create-table

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

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

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

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

Server: Msg 1770, Level 16, State 0, Line 1 Foreign key 'FK_UserRoles_user___70DDC3D8' references invalid column 'user_id' in referenced table '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),
);

最佳答案

应该像下面这样

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

MyUsers 表中不存在 user_id 列

关于sql-server - 带有 FOREIGN KEY REFERENCES 的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999014/

相关文章:

sql-server - 如何使用 Access VBA 中的传递查询执行 SET IDENTITY_INSERT ON/OFF?

sql - 为什么 SQL Server 对两个整数相除的结果进行四舍五入?

sql - 在 SQL Server 中分解 HUGE 表是否更好?

django-models - Django 中的抽象模型和外键

sql-server - 在 SQL Server 和数据库锁中使用外键

mysql - 这个创建表语法有什么问题

postgresql - PostgreSQL 中的表不可见 - 不同 session 中未定义的关系问题

sql - 将行插入到列没有重复值的临时表中

sql - 通过sql中的单个列引用多个表

sql - PostgreSQL - 创建表并设置特定的日期格式