-2

我使用 SQL 创建了以下表以导入 MySQL 5.5.24 数据库。

CREATE TABLE customers (
'custId'          INT NOT NULL AUTO_INCREMENT,
'custName'        NOT NULL  VARCHAR(80),
'custfirmName'    VARCHAR(80),
'custAddress'     NOT NULL VARCHAR(80),
'custAddress2'    VARCHAR(45),
'custCity'        NOT NULL VARCHAR(45),
'custState'       NOT NULL CHAR(2),
'custZip'         NOT NULL CHAR(10),
'custPhone'       NOT NULL VARCHAR(12),
'custEmail'       NOT NULL VARCHAR(45), 
'custWebsite'     VARCHAR(45),
PRIMARY KEY(custId)
);

我有两个资源,它们表明我的语法是正确的,但我在客户表上收到一条错误消息:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 ''custId' INT NOT NULL AUTO_INCREMENT, 'custName' NOT NULL VARCHAR(80), 'c' 附近使用正确的语法

我究竟做错了什么?

4

3 回答 3

1

尝试不带引号并放在NOT NULL每个字段声明的末尾:

 CREATE TABLE customers
  (
     custid       INT NOT NULL auto_increment,
     custname     VARCHAR(80) NOT NULL,
     custfirmname VARCHAR(80),
     custaddress  VARCHAR(80) NOT NULL,
     custaddress2 VARCHAR(45),
     custcity     VARCHAR(45) NOT NULL,
     custstate    CHAR(2) NOT NULL,
     custzip      CHAR(10) NOT NULL,
     custphone    VARCHAR(12) NOT NULL,
     custemail    VARCHAR(45) NOT NULL,
     custwebsite  VARCHAR(45),
     PRIMARY KEY(custid)
  );

或使用反引号(允许字段名称中的空格):

 CREATE TABLE customers
  (
    `custid`       INT NOT NULL auto_increment,
    `custname`     VARCHAR(80) NOT NULL,
    `custfirmname` VARCHAR(80),
    `custaddress`  VARCHAR(80) NOT NULL,
    `custaddress2` VARCHAR(45),
    `custcity`     VARCHAR(45) NOT NULL,
    `custstate`    CHAR(2) NOT NULL,
    `custzip`      CHAR(10) NOT NULL,
    `custphone`    VARCHAR(12) NOT NULL,
    `custemail`    VARCHAR(45) NOT NULL,
    `custwebsite`  VARCHAR(45),
    PRIMARY KEY(custid)
  );

小提琴

于 2013-05-20T13:50:41.767 回答
1

尝试这个:

CREATE TABLE customers (
`custId`            INT  NOT NULL AUTO_INCREMENT,
`custName`          VARCHAR(80) NOT NULL,
`custfirmName`      VARCHAR(80),
`custAddress`       VARCHAR(80) NOT NULL,
`custAddress2`      VARCHAR(45),
`custCity`          VARCHAR(45) NOT NULL,
`custState`         CHAR(2) NOT NULL,
`custZip`           CHAR(10) NOT NULL,
`custPhone`         VARCHAR(12) NOT NULL,
`custEmail`         VARCHAR(45) NOT NULL,    
`custWebsite`       VARCHAR(45),
PRIMARY KEY(custId)
);

以上是用 MySQL Workbench 测试的。

于 2013-05-20T13:53:56.367 回答
0

对列名使用反引号:-

CREATE TABLE customers (
`custId`            INT  NOT NULL AUTO_INCREMENT,
`custName`          VARCHAR(80) NOT NULL,
`custfirmName`      VARCHAR(80),
`custAddress`       VARCHAR(80) NOT NULL,
`custAddress2`      VARCHAR(45),
`custCity`          VARCHAR(45) NOT NULL,
`custState`         CHAR(2) NOT NULL,
`custZip`           CHAR(10) NOT NULL,
`custPhone`         VARCHAR(12) NOT NULL,
`custEmail`         VARCHAR(45) NOT NULL,    
`custWebsite`       VARCHAR(45),
PRIMARY KEY(custId)
);
于 2013-05-20T13:56:49.000 回答