导入sql表时由于整理而导致错误

时间:2016-08-02 07:23:52

标签: mysql sql database

下面给出了创建表的代码,而我尝试在新数据库中导入此表时出现以下错误

查询

CREATE TABLE IF NOT EXISTS `blogs` (
  `blog_id` int(10) NOT NULL AUTO_INCREMENT,
  `blog_title` text NOT NULL,
  `blog_content` text NOT NULL,
  `created_on` datetime(6) NOT NULL,
  `created_by` int(20) NOT NULL,
  `updated_on` datetime(6) NOT NULL,
  `updated_by` int(20) NOT NULL,
  PRIMARY KEY (`blog_id`)
) Engine=InnoDB  AUTO_INCREMENT=14 ;
  

错误:#1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   使用near'(6)NOT NULL,created_by int(20)NOT NULL,
  updated_on日期时间(6)不是NU'在第11行

请指导我解决这个问题,我还需要导入很多表

6 个答案:

答案 0 :(得分:4)

您无法将长度属性指定为datetime列:

CREATE TABLE IF NOT EXISTS `blogs` (
  `blog_id` int(10) NOT NULL AUTO_INCREMENT,
  `blog_title` text NOT NULL,
  `blog_content` text NOT NULL,
  `created_on` datetime NOT NULL,
  `created_by` int(20) NOT NULL,
  `updated_on` datetime NOT NULL,
  `updated_by` int(20) NOT NULL,
  PRIMARY KEY (`blog_id`)
) Engine=InnoDB  AUTO_INCREMENT=14 ;

答案 1 :(得分:4)

datetime(6)删除长度(6)

所以你的查询看起来像这样,

CREATE TABLE IF NOT EXISTS `blogs` (
  `blog_id` int(10) NOT NULL AUTO_INCREMENT,
  `blog_title` text NOT NULL,
  `blog_content` text NOT NULL,
  `created_on` datetime NOT NULL,
  `created_by` int(20) NOT NULL,
  `updated_on` datetime NOT NULL,
  `updated_by` int(20) NOT NULL,
  PRIMARY KEY (`blog_id`)
) Engine=InnoDB  AUTO_INCREMENT=14 ;

答案 2 :(得分:4)

请勿在{{1​​}}中设置长度。只能将其用作

datetime

答案 3 :(得分:2)

我不知道您在Datetime字段中使用长度为6的原因。 删除长度,它会没问题。

答案 4 :(得分:0)

当使用MySQL 5.5时,在向日期时间添加长度时会导致错误,因此为此,您必须编写

REATE TABLE IF NOT EXISTS `blogs` (
  `blog_id` int(10) NOT NULL AUTO_INCREMENT,
  `blog_title` text NOT NULL,
  `blog_content` text NOT NULL,
  `created_on` datetime(6) NOT NULL,
  `created_by` int(20) NOT NULL,
  `updated_on` datetime(6) NOT NULL,
  `updated_by` int(20) NOT NULL,
  PRIMARY KEY (`blog_id`)
) Engine=InnoDB  AUTO_INCREMENT=14 ;

然而,这在使用MySQL 5.6时会起作用。
它不会将长度添加到datetime,但MySQL 5.6将忽略长度并将其作为普通datetime字段执行。

答案 5 :(得分:0)

感谢大家的建议,现在为我工作

CREATE TABLE IF NOT EXISTS `blogs` (
  `blog_id` int(10) NOT NULL AUTO_INCREMENT,
  `blog_title` text NOT NULL,
  `blog_content` text NOT NULL,
  `created_on` datetime NOT NULL,
  `created_by` int(20) NOT NULL,
  `updated_on` datetime NOT NULL,
  `updated_by` int(20) NOT NULL,
  PRIMARY KEY (`blog_id`)
) Engine=InnoDB  AUTO_INCREMENT=14 ;

当我们在表格中使用datetime时,它会自动分配内存大小,因此我们不需要指定它