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

phpmyadmin showing mysql error when creating table?

我正在尝试使用以下 query.phpmyadmin 创建一个 table 不允许 it.What 我做错了

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, type VAR' at line 2

您必须删除 (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
);

table 创建语句的语法错误。参见documentationPrimary key 之后的列名称不是预期的。

并且 descsql 中的保留字,因此您必须将其转义或最好采用其他列名。

  1. 移除(id)

  2. desc 是 mysql 关键字。

把它放在 backticks 这样,如果你仍然想使用 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
    );