已知show variables like '%version%'输出,如何判断MySQL正确语法?
定位语法错误的标准步骤
- 优先解析报错提示的精准位置:MySQL 1064语法错误会明确标注语法解析失败的临近代码段,你收到的报错中
near 'IDENTITY(1, 1)'已经说明问题出在IDENTITY关键字附近,这是第一排查点。 - 核对MySQL 8.0版本的语法规则:你使用的
IDENTITY(1,1)是SQL Server、PostgreSQL等数据库的自增列语法,并不被MySQL支持。MySQL中实现整数列自增的标准语法是AUTO_INCREMENT,且仅支持作用在主键或唯一键的整数列上。 - 排查其余潜在语法问题:你定义的字段名
long属于MySQL的保留关键字,用作字段名时必须用反引号包裹,否则也会触发语法报错。 - 修正后重新执行验证,正确的建表语句如下:
CREATE TABLE city ( id int NOT NULL AUTO_INCREMENT, city_name char(128) NOT NULL, lat decimal(9,6) NOT NULL, `long` decimal(9,6) NOT NULL, country_id int NOT NULL, CONSTRAINT city_pk PRIMARY KEY (id) );
内容的提问来源于stack exchange,提问作者J. Mini
相关产品推荐
相关产品推荐

