#1064 MySQL 中的错误。带有 MRG_MYISAM 引擎的 utf8_general_ci
Posted
技术标签:
【中文标题】#1064 MySQL 中的错误。带有 MRG_MYISAM 引擎的 utf8_general_ci【英文标题】:#1064 error in MySQL. utf8_general_ci with MRG_MYISAM engine 【发布时间】:2015-11-15 15:15:37 【问题描述】:我想在线创建一个数据库服务器,但我遇到了问题。我的代码是这样的:
CREATE TABLE `b10_16569036_frontonApp`.`fronton` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`Name` VARCHAR CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`number` INT NOT NULL ,
`cover` INT NOT NULL ,
`ligth` INT NOT NULL ,
`type` INT NOT NULL ,
`height` FLOAT NULL DEFAULT NULL ,
`widht` FLOAT NULL DEFAULT NULL ,
`lenght` FLOAT NULL DEFAULT NULL ,
`latitude` DOUBLE NOT NULL ,
`longitude` DOUBLE NOT NULL ,
`status` INT NOT NULL DEFAULT '0',
`time` INT NOT NULL DEFAULT NULL ,
`price` INT NOT NULL DEFAULT '0'
) ENGINE = MRG_MYISAM CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
但是当我应用这段代码时,出现了这个错误:
1064 - 您的 SQL 语法有错误;检查手册 对应于您的 mysql 服务器版本,以便使用正确的语法 'CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
number
附近 INT NOT NULL,第 1 行的“cov”
我想它是关于 utf8 和 MRG_MYISAM 引擎的,但是我可以使用什么字符集? utf8和其他的有什么区别?
我正在使用 phpMyAdmin 创建这个数据库。
非常感谢!
【问题讨论】:
请仔细阅读错误信息——无效代码从CHARACTER
开始,与您的编码选择无关。正如 Prerak 在他的回答中指出的那样,您忘记了 VARCHAR
的大小。
【参考方案1】:
您需要为varchar
设置一个限制。
改变
Name VARCHAR CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
到
Name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
您可以根据需要更改限制。我以100
为例。
【讨论】:
以上是关于#1064 MySQL 中的错误。带有 MRG_MYISAM 引擎的 utf8_general_ci的主要内容,如果未能解决你的问题,请参考以下文章
MySQl 错误 #1064 存储过程 IF ELSE 带有多个 SELECT 语句
MySQL 语法错误 1064 与 MS Access 中的联合查询