错误1064(42000)SQL语法

时间:2013-08-25 18:22:10

标签: mysql sql syntax-error

我在使用mysql导入架构时遇到问题。

mysql -u user -p print < jasmine.sql 
  

第23行的错误1064(42000):您的SQL语法出错;   检查与您的MySQL服务器版本对应的手册   正确的语法在'(14)NOT NULL附近使用,左job_id tinytext NOT   NULL,
printer tinytext NOT NULL,第3行的“u”

这是我的代码:

CREATE TABLE `jobs_log` (
  `id` mediumint(9) NOT NULL auto_increment, 
  `date` timestamp(14) NOT NULL,
  `job_id` tinytext NOT NULL, 
  `printer` tinytext NOT NULL,
  `user` tinytext NOT NULL, 
  `server` tinytext NOT NULL, 
  `title` tinytext NOT NULL,
  `copies` smallint(6) NOT NULL default '0', 
  `pages` smallint(6) NOT NULL default '0', 
  `options` tinytext NOT NULL, 
  `doc` tinytext NOT NULL, 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM COMMENT='Lists all the jobs successfully sent for printing';

我使用的是Mysql-Server Version 5.5。

4 个答案:

答案 0 :(得分:2)

只需使用timestamp代替timestamp(14)。据我所知,有一个时间戳(N)弃用。

答案 1 :(得分:0)

我认为错误非常清楚。 Timestamp不接受长度参数。使用:

date timestamp NOT NULL, 

但是,如果这只是一个日期,请使用date

`date` date NOT NULL;

编辑:

然后将TYPE更改为ENGINE(感谢Arun)。

答案 2 :(得分:0)

时间戳没有长度属性!

升级到MySQL 5.5或更高版本时,必须将TYPE转换为使用ENGINE。

试试这个:

CREATE TABLE jobs_log (
id mediumint(9) NOT NULL auto_increment,
date timestamp,
job_id tinytext NOT NULL,
printer tinytext NOT NULL,
user tinytext NOT NULL,
server tinytext NOT NULL,
title tinytext NOT NULL,
copies smallint(6) NOT NULL default '0',
pages smallint(6) NOT NULL default '0',
options tinytext NOT NULL,
doc tinytext NOT NULL,
PRIMARY KEY (id)
)ENGINE = MyIsam COMMENT='Lists all the jobs successfully sent for printing';

答案 3 :(得分:-1)

时间戳没有长度属性,因此请将timestamp(14)替换为timestamp()。 MyISAM是引擎,因此请将TYPE替换为ENGINE