1

我在 mysql 中导入模式时遇到问题。

mysql -u user -p print < jasmine.sql 

第 23 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '(14) NOT NULL,
job_idtinytext NOT NULL,
printertinytext NOT NULL,
'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 版本 5.5。

4

4 回答 4

2

只需使用timestamp而不是timestamp(14). 据我所知,有一个时间戳(N)弃用。

于 2013-08-25T18:28:40.400 回答
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';
于 2013-08-25T18:38:05.123 回答
0

我认为错误很明显。 Timestamp不带长度参数。利用:

date timestamp NOT NULL, 

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

`date` date NOT NULL;

编辑:

然后更改TYPEENGINE(感谢 Arun)。

于 2013-08-25T18:29:44.983 回答
-1

时间戳没有长度属性,所以timestamp(14)timestamp(). MyISAM 是一个引擎,所以TYPEENGINE.

于 2016-09-29T09:41:13.330 回答