我收到了MySQL数据转储,并试图将数据插入到一组临时表中。第一个表的创建语句如下所示。当我运行此操作时,我收到错误:“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 ''temp_books'( 'ID'int( 11 ) NOT NULL AUTO_INCREMENT, 'start'varchar( 20 ) ' at line 1
”。我已经检查了MySQL语法的文档,但我没有看到问题所在。
CREATE TABLE 'temp_books' (
'ID' int(11) NOT NULL AUTO_INCREMENT,
'start' varchar(20) NOT NULL,
'customer_id' int(11) NOT NULL DEFAULT '0',
'total_num' int(11) NOT NULL,
'amount' double(5,2) NOT NULL DEFAULT '0.00',
'changed' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ('ID'),
UNIQUE KEY 'start' ('start')
) ENGINE=MyISAM AUTO_INCREMENT=4853 DEFAULT CHARSET=latin1;
答案 0 :(得分:4)
您不应在您的标识符上放置单引号。如果你要引用它们,请使用“后退”字符(“`”)。您也可以使用双引号,但必须指定该模式:
SET sql_mode='ANSI_QUOTES';
答案 1 :(得分:2)
我总是遇到CREATE TABLE的问题。不知道为什么。采取一些试错法。
试试这个:
CREATE TABLE temp_books (
ID int(11) NOT NULL AUTO_INCREMENT,
start varchar(20) NOT NULL,
customer_id int(11) NOT NULL DEFAULT '0',
total_num int(11) NOT NULL,
amount double(5,2) NOT NULL DEFAULT '0.00',
changed timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY start (start)
) ENGINE=MyISAM AUTO_INCREMENT=4853 DEFAULT CHARSET=latin1;
答案 2 :(得分:0)
我必须删除引号,以及更改字段的默认值以及默认字符集。希望这不会影响数据。
答案 3 :(得分:0)
这是另一种可能适用于某些情况的写法:(为简洁起见,大部分列都省略了)
create table temp_books
(
id int not null,
start varchar(255) null,
constraint six_cb_datasource_pk
primary key (id)
);