首页 > 解决方案 > 为什么 MariaDB 10.4.8(最新版)不能更改此列类型?

问题描述

MariaDB [myDatabase]> alter table myTable MODIFY Descr varchar(255) default '' not null CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci' at line 1

为什么会失败?语法是正确的,不是吗?

标签: mysqlmariadb

解决方案


CHARACTER SETandCOLLATION是数据类型规范的一部分,所以它们必须直接在 之后VARCHAR(255),不能将DEFAULTandNOT NULL属性放在中间。

alter table myTable MODIFY Descr varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci not null default '';

推荐阅读