4

複数のロールにリンクするテーブルを作成しようとしています。このテーブルはUserRolesと呼ばれ、2つの列しかありません。

最初の列にはユーザーへの参照が含まれています2番目の列には役割へのリンクが含まれています

下部にあるように、外部キー参照を使用しましたが、エラーメッセージが表示され続けます

クエリの実行中に次のエラーが発生しました。

サーバー:メッセージ1770、レベル16、状態0、行1外部キー'FK_UserRoles_user___70DDC3D8 'は参照テーブル'MyUsers'の無効な列'user_id'を参照しています。

制約を作成できませんでした。以前のエラーを参照してください。

これを行うためのより良い方法はありますか?

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),
);
4

2 に答える 2

6

以下のようになります

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

user_id列がMyUsersテーブルに存在しません

于 2013-02-21T09:51:39.853 に答える
1

テーブルは次のようになります。

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

参照を作成する際のルールは次のとおりです。

Column_Nameデータ型外部キー参照ParentTableName(parentColumnName)

于 2013-02-21T09:59:28.870 に答える