phpmyadmin在创建表时显示mysql错误?

时间:2015-02-24 07:26:00

标签: mysql database phpmyadmin

我试图使用以下查询创建一个表.phpmyadmin不允许它。我做错了什么

CREATE TABLE main (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY(id),
dealername VARCHAR(32) NOT NULL,
product VARCHAR(32) NOT NULL,
type VARCHAR(16) NOT NULL,
date VARCHAR(16) NOT NULL,
desc VARCHAR(255) NOT NULL,
location VARCHAR(32) NOT NULL,
sublocation VARCHAR(32) NOT NULL,
address VARCHAR(255) NOT NULL,
phone1 VARCHAR(16) NOT NULL,
phone2 VARCHAR(16) NOT NULL,
auth VARCHAR(10) NOT NULL,
brands VARCHAR(255) NOT NULL,
lat VARCHAR(32) NOT NULL,
lon VARCHAR(32) NOT NULL
);

错误: #1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便使用接近'(id),dealername VARCHAR(32)NOT NULL,product VARCHAR(32)NOT NULL,类型VAR'在第2行

2 个答案:

答案 0 :(得分:1)

您必须删除(id)

CREATE TABLE main (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
dealername VARCHAR(32) NOT NULL,
product VARCHAR(32) NOT NULL,
type VARCHAR(16) NOT NULL,
date VARCHAR(16) NOT NULL,
`desc` VARCHAR(255) NOT NULL,
location VARCHAR(32) NOT NULL,
sublocation VARCHAR(32) NOT NULL,
address VARCHAR(255) NOT NULL,
phone1 VARCHAR(16) NOT NULL,
phone2 VARCHAR(16) NOT NULL,
auth VARCHAR(10) NOT NULL,
brands VARCHAR(255) NOT NULL,
lat VARCHAR(32) NOT NULL,
lon VARCHAR(32) NOT NULL
);

表create语句的语法错误。请参阅documentation。 不期望Primary key之后的列名称。

descsql中的保留字,因此您必须将其转义或更好地使用其他列名称。

答案 1 :(得分:1)

  1. 删除(id)

  2. desc 是mysql关键字。

  3. 如果你仍想使用desc作为你的列名,那么

    将它放在反引号中。

     CREATE TABLE main (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        dealername VARCHAR(32) NOT NULL,
        product VARCHAR(32) NOT NULL,
        type VARCHAR(16) NOT NULL,
        date VARCHAR(16) NOT NULL,
        `desc` VARCHAR(255) NOT NULL,
        location VARCHAR(32) NOT NULL,
        sublocation VARCHAR(32) NOT NULL,
        address VARCHAR(255) NOT NULL,
        phone1 VARCHAR(16) NOT NULL,
        phone2 VARCHAR(16) NOT NULL,
        auth VARCHAR(10) NOT NULL,
        brands VARCHAR(255) NOT NULL,
        lat VARCHAR(32) NOT NULL,
        lon VARCHAR(32) NOT NULL
        );