MySQL在phpMyAdmin上创建表错误

时间:2013-10-25 06:04:28

标签: mysql

在PHP和MYSQL中为类创建数据库。在创建数据库时遇到错误,phpMyAdmin给了我一个无用的错误消息。 (提供更好的错误消息的软件将是非常棒的BTW)

phpMyAdmin错误:

  

#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在'CREATE TABLE客户附近使用正确的语法(customer_id INT UNSIGNED NOT NULL auto increment,fir'在第1行

USE isys288_gottfrk 
CREATE TABLE customers ( customer_id INT UNSIGNED NOT NULL
auto increment, first_name carchar(20) NOT NULL, last_name VARCHAR(40) NOT NULL,
PRIMARY KEY (customer_id), INDEX full_name (last_name, first_name) ) engine =
innodb;

3 个答案:

答案 0 :(得分:0)

您的代码中存在多个错误。

USE isys288_gottfrk;
CREATE TABLE customers 
( 
  customer_id INT UNSIGNED NOT NULL auto_increment, 
  first_name varchar(20) NOT NULL, 
  last_name VARCHAR(40) NOT NULL,
  PRIMARY KEY (customer_id), 
  INDEX full_name (last_name, first_name) 
) engine = innodb;

我建议您使用像 MySQL Workbench 这样的数据库工具来生成表格。然后你就可以马上看到问题了。

答案 1 :(得分:0)

Juergen d编辑了你的格式化问题,这也可能对你有所帮助:你的初始声明全部都在一行,所以错误被标记在那一行。如果您在多行上进行编辑(例如在您的问题中,或者在答案中更好),您可能会收到更好的信息,例如:一个标记包含carchar(20)的行包含问题的方法(它在答案中的方式更好,但它正确使用varchar(20),而不是标记问题)

是的,如果错误消息会立即标记问题会很好,但有时候当输入以更易读的方式格式化时,它已经更好了。我用多线语句测试了相同的内容,mysql声明

 ERROR 1064 (42000): You have an error in your SQL syntax; 
 check the manual that corresponds to your MySQL server version for 
 the right syntax to use near 'carchar(20)

答案 2 :(得分:0)

试试这个:

CREATE TABLE customers (
customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT
, first_name VARCHAR (20) NOT NULL
, last_name VARCHAR (40) NOT NULL
, PRIMARY KEY (customer_id)
, INDEX full_name (last_name, first_name)
) ENGINE = INNODB ;

您可以使用SQLyog之类的GUI客户端。