ERROR 1064(42000),创建MySQL表时

问题描述:

我试图创建一个表,但它给我这个错误:ERROR 1064(42000),创建MySQL表时

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax touse near ' INT NOT NULL AUTO_INCREMENT

这里是我的代码:

CREATE TABLE bowling_scores (
    PlayerID, INT NOT NULL AUTO_INCREMENT 
    , LName VARCHAR(100) NOT NULL 
    , FName VARCHAR(100) NOT NULL 
    , Game1 INT NULL 
    , Game2 INT NULL 
    , Game3 INT NULL 
    , Game4 INT NULL 
    , PRIMARY KEY (PlayerID) 
    ); 
+0

尝试改变'PlayerID,''到PlayerID' – Ata

+0

看看在['CREATE TABLE']的语法(https://dev.mysql.com/doc/ refman/5.7/en/create-table.html)声明。 – axiac

下面是关于语法错误消息的提示:消息告诉你错误在哪里。

check the manual that corresponds to your MySQL server version for the right syntax to use near ' INT NOT NULL AUTO_INCREMENT

这是告诉你,MySQL变得困惑,因为它不期望看到该文本。这通常意味着你在那个时候犯了一个错误,或者在之前立即吧。

这可以帮助您缩小在SQL语句中的搜索范围,使其发生错误。

该错误信息还会告诉您该怎么做:检查手册。您应该通过阅读文档和示例来帮助您更好地理解SQL。

我已经使用MySQL近20年了,但我仍然每天都参考参考文档。事实上,它是,因为我对MySQL有经验,我知道这是正确的做法。

所有SQL语句在手册中都有参考页。这里是CREATE TABLE的页面:https://dev.mysql.com/doc/refman/5.7/en/create-table.html

MySQL手册很大,所以很容易想到“我不知道正确的页面在哪里”。逐渐地,你可以学习手册是如何组织的。注意左栏的链接层次结构。如有疑问,只需使用Google的短语“mysql create table syntax”即可。

您应该能够为自己回答简单的语法错误,而不是发布到堆栈溢出。你会更快得到你的答案!

这是一个明显的错误:

PlayerID, INT NOT NULL AUTO_INCREMENT 

您有一个无关的逗号。它应该是:

PlayerID INT NOT NULL AUTO_INCREMENT 

不要在您的SQL语句的下一行上添加逗号!

这应该工作。你有一个逗号后PlayerID

CREATE TABLE bowling_scores (
    PlayerID INT NOT NULL AUTO_INCREMENT, 
    LName VARCHAR(100) NOT NULL, 
    FName VARCHAR(100) NOT NULL, 
    Game1 INT NULL, 
    Game2 INT NULL, 
    Game3 INT NULL, 
    Game4 INT NULL, 
PRIMARY KEY (PlayerID) 
);