【问题标题】:Error 1064 (42000) Bad Syntax - where?错误 1064 (42000) 错误的语法 - 在哪里?
【发布时间】:2013-11-11 19:20:25
【问题描述】:

http://www.sendspace.com/file/txjcvd

您好,PHP/MySql 新手,正在尝试创建一个包含 25 项杂项的简单数据库,其中包含:id、产品名称、产品价格和库存数量。

create table id(
   id int(11) unsigned auto_increment primary key not null,
   productname varchar(25) not null,
   prodprice int(11) not null,
   stockquant int(11) not null;

但是我似乎无法弄清楚语法的哪一部分是错误的?

【问题讨论】:

  • MySQL 应该返回一条错误消息,告诉您它不理解的查询的第一部分。它会说“'unsigned auto_increment...附近的语法不正确”之类的。
  • 您缺少右括号。
  • 啊,是的,第 1 行出错了。
  • 水平滚动,有右括号。
  • 没有,没有。

标签: php mysql database database-design command-prompt


【解决方案1】:
create table id (
id int(11) unsigned auto_increment primary key not null,
productname varchar(25) not null, 
prodprice int(11) not null, 
stockquant int(11) not null
;

在 ; 之前不应该有一个 )考虑 ( 在第一行 id (? (正如其他几个人评论的那样) 之后)

create table id (
id int(11) unsigned auto_increment primary key not null,
productname varchar(25) not null, 
prodprice int(11) not null, 
stockquant int(11) not null
);

【讨论】:

  • 您的答案出现错误第 5 行 :(
  • 啊,我没有意识到需要 );。查询好!谢谢!
【解决方案2】:

最后缺少括号。有了它,声明就可以正常工作:

mysql>
 CREATE TABLE id(
    id INT(11) unsigned auto_increment PRIMARY KEY NOT NULL,
    productname varchar(25) NOT NULL,
    prodprice INT(11) NOT NULL,
    stockquant INT(11) NOT NULL
 );
Query OK, 0 rows affected (0.02 sec)

【讨论】:

    猜你喜欢
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多