背景:
根据开发给的sql创建表,创建失败
mysql> create table zss (
a bigint(20) unsigned AUTO_INCREMENT COMMENT '自增主键',
b_id varchar(64) BINARY NOT NULL DEFAULT '' COMMENT '账号ID',
c tinyint NOT NULL COMMENT '状态 0: 好, 1: 很好, 2:非常好',
d_time datetime DEFAULT '2026-03-13T16:36:07+00:00' COMMENT '开始时间',
key varchar(25) NOT NULL DEFAULT '' COMMENT '标识',
e_time datetime NOT NULL DEFAULT '2026-03-13T16:36:07+00:00' COMMENT '时间',
PRIMARY KEY(a),
UNIQUE accid(b_id asc)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 COMMENT='a';
ERROR 1064 (42000): 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 'varchar(25) NOT NULL DEFAULT '' COMMENT '标识',
d_time datetime ' at line 6
mysql>
处理过程:
根据报错:第6行有问题
在自己的测试环境,测试创建这个字段是否正常
mysql> create table jj(key varchar(25) NOT NULL DEFAULT '' COMMENT '标识');
ERROR 1064 (42000): 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 'varchar(25) NOT NULL DEFAULT '' COMMENT '用户标识')' at line 1
也有报错,确认是这里导致的报错,经过仔细观察应该是字段名用了关键字key导致的,修改字段名试试:正常创建了
mysql> create table jj(key1 varchar(128) NOT NULL DEFAULT '' COMMENT '标识');
Query OK, 0 rows affected (0.34 sec)
总结:
在创建表时,如果有报错,应根据报错提示的行号进行排查,如果无法一眼发现问题,可以在自己的测试环境测试创建这个行号对应的字段,确认是否是这个字段导致的
