mysql - 为什么 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
为什么会失败?语法是正确的,不是吗?
解决方案
CHARACTER SET
andCOLLATION
是数据类型规范的一部分,所以它们必须直接在 之后VARCHAR(255)
,不能将DEFAULT
andNOT NULL
属性放在中间。
alter table myTable MODIFY Descr varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci not null default '';
推荐阅读
- vue.js - Vuetify - 自定义
- python - 如何设置接受函数调用者提供的参数的装饰器?
- excel - 如何将 PowerQuery 的结果附加到自身?
- java - Sonarlint 和 Intelij:可以仅对更改列表中的文件运行分析吗?
- dax - Dax 测量 - 有条件的按组占总数百分比的总和
- java - 二进制子串的一定长度的每个子串应至少有一个“1”字符
- android - 意外的奇怪错误 Kotlin“密封”类使用“何时”
- typescript - 界面结果错误:不可分配给类型
- python-3.x - 如何在python中获得令人难以置信的大数除法的余数
- vb.net - 如何在 VB.net 的面板中卸载表单