4

多対多の関係を持つ2つのテーブルがあります。

Player(personID, school)
Team(teamID, name)

playerTeamと呼ばれる連想エンティティテーブルを作成するためにどのコードを使用しますか。

私は以下を試しました:

CREATE TABLE
(
playerID INT NOT NULL, 
teamID INT NOT NULL,
PRIMARY KEY(playerID, teamID)
);

この場合、テーブルを接続する方法がわかりません。

4

2 に答える 2

7

これを試して:

CREATE TABLE teamPlayer
(
playerID INT NOT NULL, 
teamID INT NOT NULL,
PRIMARY KEY(playerID, teamID)
);

alter table teamPlayer
add constraint 
    fk_teamPlayer__Player foreign key(playerID) references Player(personID);

alter table teamPlayer
add constraint 
    fk_teamPlayer__Team foreign key(teamID) references Team(teamID);

またはこれ:

CREATE TABLE teamPlayer
(
playerID INT NOT NULL, 
teamID INT NOT NULL,
PRIMARY KEY(playerID, teamID),

constraint fk_teamPlayer__Player
foreign key(playerID) references Player(personID),

constraint fk_teamPlayer__Team 
foreign key(teamID) references Team(teamID)

);

外部キーに明示的に名前を付ける必要がない場合は、次を使用できます。

CREATE TABLE teamPlayer
(
playerID INT NOT NULL references Player(personID), 
teamID INT NOT NULL references Team(teamID),
PRIMARY KEY(playerID, teamID)
);

すべての主要な RDBMS は、関係 DDL に関する ANSI SQL にほとんど準拠していました。誰もが同じです

CREATE THEN ALTER (明示的に名前が付けられた外部キー):

CREATE (明示的に名前が付けられた外部キー):

CREATE (自動命名外部キー):

于 2012-05-22T00:53:00.857 に答える
0

FOREIGN KEYを使用している場合を除き、テーブルを作成するときに関係の種類を指定することはありません。あなたの場合、クエリで実際にテーブル名が欠落している場合は、次のようになります。

CREATE TABLE `playerTeam`
(
`playerID` INT NOT NULL, 
`teamID` INT NOT NULL,
PRIMARY KEY(`playerID`, `teamID`)
);
于 2012-05-22T00:41:33.320 に答える