【问题标题】:Another SQL ERROR 1064 (42000) : cant locate the error另一个 SQL ERROR 1064 (42000) : 找不到错误
【发布时间】:2018-10-01 14:19:35
【问题描述】:

我的代码:

CREATE TABLE order(
  id int(11) NOT NULL,
  name varchar(32) NOT NULL,
  contact varchar(32) NOT NULL,
  address varchar(32) NOT NULL,
  email varchar(32) NOT NULL,
  item text NOT NULL,
  amount varchar(32) NOT NULL,
  status varchar(32) NOT NULL,
  dateOrdered varchar(32) NOT NULL,
  dateDelivered varchar(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在我将它导入 GCP SQL 后,我得到:

导入失败:ERROR 1064 (42000) at line 74: You have an error in 你的 SQL 语法;检查与您的 MySQL 对应的手册 'order( id int(11) NOT 附近使用正确语法的服务器版本 NULL,名称 varchar(32) NOT NULL,在第 1 行联系 varchar(32)' 导入 错误:退出状态 1

任何帮助将不胜感激。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    更改你的表名,order是mysql中的保留字,这就是它显示错误的原因

    CREATE TABLE orders
    ( 
    id int(11) NOT NULL,
    name varchar(32) NOT NULL, 
    contact varchar(32) NOT NULL, 
    address varchar(32) NOT NULL, 
    email varchar(32) NOT NULL, 
    item varchar(250) NOT NULL, 
    amount varchar(32) NOT NULL, 
    status varchar(32) NOT NULL, 
    dateOrdered varchar(32) NOT NULL, 
    dateDelivered varchar(32) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    【讨论】:

    • 除了你的回答我想说他可以把名字放在引号里,它会再次起作用。它看起来像`order`
    • @codtex,完全同意你的观点,我没有想到 :)
    • 我尝试更改名称并且有效。谢谢各位。
    • @HoliSappo,如果对你有帮助,请将其标记为答案
    • 另外,orders 是一个比 order 更好的名称,因为该表(希望)存储了许多订单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多