MySQL创建Mastertbl表时出现1064语法错误,求解决方案
问题排查与修正
错误原因分析
double类型语法错误:MySQL/MariaDB中double类型的声明格式为double(M, D),其中M代表总位数(整数部分+小数部分),D代表小数部分的位数。你仅写了double(225),缺少小数位数参数,这是触发1064语法错误的核心原因。- 主键字段的冗余约束:
PRIMARY KEY约束默认隐含NOT NULL属性,无需额外声明NOT NULL,虽不会触发错误,但属于冗余写法。
修正后的SQL语句
CREATE TABLE Mastertbl( mid int(11) PRIMARY KEY AUTO_INCREMENT, speciesName varchar(225) NOT NULL, localName varchar(225) NOT NULL, familyName varchar(225) NOT NULL, pila int(11) NOT NULL, areaNumber int(11) NOT NULL, plotNumber int(11) NOT NULL, Longitude double(15, 8) NOT NULL, Latitude double(15, 8) NOT NULL );
关键修改说明
- 移除
mid字段的NOT NULL约束,保留PRIMARY KEY AUTO_INCREMENT即可。 - 将
double(225)修改为double(15, 8)(可根据实际经纬度精度需求调整M和D的值,15位总长度+8位小数足以满足大多数地理坐标场景)。
内容的提问来源于stack exchange,提问作者Edizon Tabac
相关产品推荐
相关产品推荐

