社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

在mySQL中更改字符集时出错?

Rosamunda • 5 年前 • 1416 次点击  

我正在尝试更改mySQL数据库(ver。5.6.45)从utf8到utf8mb4,以便能够发布emojis。

这就是我要做的:

ALTER TABLE contenidos CHANGE COLUMN titulo varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE contenidos CHANGE COLUMN titulo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE contenidos CHANGE COLUMN titulo varchar(500) CHARACTER SET utf8mb4;

我一直有这个错误:

1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获得正确的语法

如果我从phpmyadmin更改排序规则,我可以这样做,但它似乎不起作用,因为emojis在数据库中不是保存程序。所以我想我也应该换一个字符集。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55490
 
1416 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Bill Karwin
Reply   •   1 楼
Bill Karwin    5 年前

请在此处查看ALTER TABLE的语法: https://dev.mysql.com/doc/refman/5.6/en/alter-table.html

即使你不改名字。

ALTER TABLE contenidos CHANGE COLUMN titulo 
  titulo varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE contenidos CHANGE COLUMN <old_name> <new_name> <data-type> ...

CHANGE列的语法要求您提供两个名称,即使它们是相同的。

替代方法:使用MODIFY COLUMN,它不允许更改列名,但允许更改其他列属性,包括字符集。所以您只需要列出一次列名。

ALTER TABLE contenidos MODIFY COLUMN titulo 
  varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE contenidos MODIFY COLUMN titulo 
  varchar(500) COLLATE utf8mb4_general_ci;