#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开始,与您的编码选择无关。正如 Prera​​k 在他的回答中指出的那样,您忘记了 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 中的联合查询

MySQL 在存储过程中的情况:错误代码:1064

MySQL [错误] 1064

MySQL Workbench:查询中的错误(1064):第 1 行的“VISIBLE”附近的语法错误

带有游标的 MySQL 存储过程