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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '"User"( userId int NOT NULL AUTO_INCREMENT, userRoleId int NOT NULL, taalI' 附近使用正确的语法

出了什么问题?

编辑:表 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 回答