在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;
答案 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客户端。