1

mysql で次の sql ステートメントを使用します。

CREATE TABLE "User"(
    userId int NOT NULL AUTO_INCREMENT,
    userRoleId int NOT NULL,
    taalId int NOT NULL,
    hotelId int NOT NULL,
    gebruikersnaam varchar(40) NOT NULL,
    wachtwoord varchar(40) NOT NULL,
    email varchar(50) NOT NULL,
    FOREIGN KEY (userRoleId) REFERENCES UserRole (userRoleId),
    FOREIGN KEY (taalId) REFERENCES Taal (taalId),
    FOREIGN KEY (hotelId) REFERENCES Hotel (hotelId),
    PRIMARY KEY(userId)
 );

しかし、次のMysqlエラーが発生します:

#1064 - SQL 構文にエラーがあります。1 行目の '"User"( userId int NOT NULL AUTO_INCREMENT, userRoleId int NOT NULL, taalI' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

何がうまくいかないのですか?

編集: テーブル UserRole、Taal、および Hotel は問題なく適切に作成されます。

4

3 に答える 3

2

予約語をエスケープするには、引用符ではなくバッククォートを使用します。

CREATE TABLE `User` -- <== Notice backticks instead of quotes
( 
    userId int NOT NULL AUTO_INCREMENT, 
    userRoleId int NOT NULL, 
    taalId int NOT NULL, 
    hotelId int NOT NULL, 
    gebruikersnaam varchar(40) NOT NULL, 
    wachtwoord varchar(40) NOT NULL, 
    email varchar(50) NOT NULL, 
    FOREIGN KEY (userRoleId) REFERENCES UserRole (userRoleId), 
    FOREIGN KEY (taalId) REFERENCES Taal (taalId), 
    FOREIGN KEY (hotelId) REFERENCES Hotel (hotelId), 
    PRIMARY KEY(userId) 
 ); 
于 2012-09-11T17:32:26.900 に答える
1

試す:

`user` 

それ以外の:

"User"
于 2012-09-11T17:30:14.950 に答える
1

些細なことかもしれませんが...しかし、私が知る限り、テーブル名に引用符を使用するべきではありません...それらをバッククォートに置き換えてみてください。

于 2012-09-11T17:30:27.430 に答える