创建含DOUBLE字段的MySQL表时触发error #1064错误求助
MySQL建表1064错误修复方案
错误点说明
- 错误1:
YEAR(4)写法不被支持,MySQL 5.7.5版本起已经移除YEAR类型的长度参数,直接使用YEAR即可。 - 错误2:
DOUBLE(20)语法不合法,DOUBLE类型若指定精度需要传入总位数、小数位两个参数,仅传一个参数会触发语法错误,评分场景建议直接用DOUBLE或者指定为DOUBLE(5,2)(支持最高999.99的评分,满足绝大多数使用需求)。 - 错误3:整数类型主键无需指定索引长度,
PRIMARY KEY(mID(20))中的(20)属于冗余且不被支持的写法,直接保留字段名即可。
修正后的完整建表代码
CREATE TABLE `RENRMyLUoX`.`movie`( `mID` INT NOT NULL, `title` VARCHAR(50) NULL DEFAULT NULL, `relYear` YEAR NULL DEFAULT NULL, `category` VARCHAR(50) NULL DEFAULT NULL, `runTime` INT NOT NULL, `studioName` VARCHAR(50) NULL DEFAULT NULL, `description` VARCHAR(50) NULL DEFAULT NULL, `rating` DOUBLE NULL DEFAULT NULL, PRIMARY KEY(`mID`) ) ENGINE = InnoDB CHARSET = latin1 COLLATE latin1_bin;
可选优化建议
- 若使用的是MySQL 8.0及以上版本,INT类型后的显示宽度参数已被废弃,可以直接写
INT代替INT(20) - 电影描述字段
description通常内容较长,建议将长度从50调整为更大的值比如VARCHAR(2000)或者TEXT类型 - 字符集如果需要支持中文的话,建议调整为
utf8mb4替代latin1
内容的提问来源于stack exchange,提问作者superKade
相关产品推荐
相关产品推荐

