当前位置: 首页 > 面试题库 >

如何将数据库中的所有表转换为一个排序规则?

危砚
2023-03-14
问题内容

我收到错误消息:

操作’=’的归类(utf8_general_ci,IMPLICIT)和(utf8_unicode_ci,IMPLICIT)的非法混合

我尝试将两个表手动更改为,utf8_general_ci,IMPLICIT但仍然出现错误。

有没有一种方法可以将所有表转换为utf8_general_ci,IMPLICIT并完成它?


问题答案:

您需要为每个表执行一个alter table语句。该语句将采用以下形式:

ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]

现在,要获取数据库中的所有表,您将需要执行以下查询:

SELECT * 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";

因此,现在让MySQL为您编写代码:

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE your_collation_name_here;") AS    ExecuteTheString
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDatabaseName"
AND TABLE_TYPE="BASE TABLE";

您可以复制结果并执行它们。我还没有测试语法,但是您应该可以弄清楚其余的语法。认为这是一个小练习。

希望有帮助!



 类似资料:
  • 问题内容: 如何将整个MySQL数据库字符集转换为UTF-8并将排序规则转换为UTF-8? 问题答案: 使用和命令。 或者,如果您仍在不支持4字节UTF-8的MySQL 5.5.2或更早版本上,请使用代替:

  • 问题内容: 现在数据库已建立,我想将排序规则更改为。 PhpMyAdmin中是否有任何设置可以更改数据库,表,列的排序规则?而不是一一改变? 问题答案: 您需要单独转换每个表: (这也将转换列),或使用导出数据库,然后使用将其导入回来。

  • 这基本上与此相反:如何使用Spring JPA执行分页QueryDSL查询? 这是一个自定义查询,我不能使用任何findAll()方法。

  • 如何将按排序顺序转换为而不更改()?我们希望保留和。 将2,3,1添加到将其排序为1,2,3。从创建一个将具有2,3,1的顺序。中的和方法也将具有2,3,1的顺序。我猜这与的实现有关。

  • 问题内容: 我知道我可以单独发出一个更改表,以将表存储从MyISAM更改为InnoDB。 我想知道是否有办法将所有这些快速更改为InnoDB? 问题答案:

  • 嗨,我是redis的新手,想在这里得到一些帮助。我使用java和sql Server2008和redis server。为了与redis交互,我使用jedis api for Java。我知道redis用于存储基于键值的东西。每个键都有值。 问题背景: 我有一个名为“用户”的表,它存储数据,如id,姓名,电子邮件,年龄,国家。这是sql表的模式。现在这个表有一些行(也表示一些数据)。现在,我的主键