【问题标题】:Creating table within mysql db, ERROR 1064 (42000)?在 mysql db 中创建表,错误 1064 (42000)?
【发布时间】:2019-06-11 15:23:34
【问题描述】:

**我正在使用 MySQL 8.0 命令行客户端

我正在尝试在 mysql db 中创建一个通用表,但不断收到以下错误:

"ERROR 1064 (42000):您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 'AUTO_INCREMENT 附近使用的正确语法, 制造商PTNO VARCHAR(40) NOT NULL, QuantityAvailable12am 我在第 2 行"

我浏览了手册,但没有找到任何有助于解决此问题的内容;还尝试删除索引(id)列并将其分配为 KEY

CREATE TABLE quantity ( 
    id INT NOT NULL AUTO_INCREMENT, 
    ManufacturerPTNO VARCHAR(40) NOT NULL, 
    QuantityAvailable12am INT, 
    QuantityAvailable01am INT, 
    PRIMARY KEY (ManufacturerPTNO),
    );

【问题讨论】:

标签: mysql


【解决方案1】:
CREATE TABLE quantity ( 
    id INT NOT NULL AUTO_INCREMENT, 
    ManufacturerPTNO VARCHAR(40) NOT NULL, 
    QuantityAvailable12am INT, 
    QuantityAvailable01am INT, 
    PRIMARY KEY (id)
    );

主键应该是id

根据您的评论更新答案

CREATE TABLE quantity ( 
    id INT NOT NULL AUTO_INCREMENT, 
    ManufacturerPTNO VARCHAR(40) NOT NULL, 
    QuantityAvailable12am INT, 
    QuantityAvailable01am INT, 
    PRIMARY KEY (ManufacturerPTNO),
    UNIQUE KEY (id)
    );

【讨论】:

  • 是的,这行得通,但我需要 PTNO 作为主键,所以连接到另一个表
  • 根据您的评论更新答案
  • 感谢您的帮助!
  • 感谢您接受答案,如果它对您有用,
【解决方案2】:
CREATE TABLE quantity ( 
id INT NOT NULL AUTO_INCREMENT, 
ManufacturerPTNO VARCHAR(40) NOT NULL, 
QuantityAvailable12am INT, 
QuantityAvailable01am INT, 
PRIMARY KEY (ManufacturerPTNO),  <--- remove comma from here
);

并制作 PRIMARY KEY(id);

【讨论】:

    【解决方案3】:

    我有同样的错误信息,很长一段时间后,我意识到我正在尝试按名称“订单”创建一个表,这就是问题所在。一旦我更改了名称,它就起作用了!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-26
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多