mysql执行建表语句报1064

mysql执行建表语句报1064

viEcho Lv5

最近自己准备写个项目玩儿,并且准备采用docker来部署下,看下devops的效果;说干就干,尼玛采用了flyway插件,项目启动时建表语句却执行失败,老是报1064;找了些帖子都没解决,偶然发现这个坑点,记录于此;

建表脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
DROP TABLE IF EXISTS `t_family_test`;
CREATE TABLE `t_family_test`
(
`id`         int(11)     NOT NULL AUTO_INCREMENT COMMENT '主键',
`family_type`        int(3)  COMMENT '家庭成员类型',
`family_type_name`   varchar(10)     COMMENT '家庭成员名称',
`delete_flag` int(1) default '0' COMMENT '删除标识,0未删除 1已删除',
`created_by` varchar(20) COMMENT '创建人',
`created_time` datetime COMMENT '创建时间',
`updated_by` varchar(20) COMMENT '更新人',
`updated_time` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

尼玛这哪里有问题,狗日的。项目启动时,flyway执行这个脚本时就是报错;不信邪的我,拿着sql去数据库执行发现,还真是报错;1064 - 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 ' int(11)     NOT NULL AUTO_INCREMENT COMMENT '主键', ' at line 3, Time: 0.000000s
看这意思是mysql版本的问题,吓的我赶紧去看了下我本地安装的mysql版本;
5.7.28
5.7的版本,应该是大家都在用的版本,肯定不会有问题的;那么出问题的点还是在这个脚本上;可是我左看右看尼玛这脚本究竟哪里有问题呢!

调整

报错截图
就想着尝试调整下脚本间的间距,居然就ok了,特么的找谁说理去;
对比成功截图

小结:mysql建表时,字段和表面都加上“`”号,且sql尽量聚合一点,不然错都不知道错哪里了!可怜的我找了一个多小时!坑爹啊,后面还是用建表工具生成这类的建表的sql吧;

  • Title: mysql执行建表语句报1064
  • Author: viEcho
  • Created at : 2021-05-21 01:15:44
  • Updated at : 2024-01-18 14:44:16
  • Link: https://viecho.github.io/2021/0521/mysql-1064.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
mysql执行建表语句报1064