0

我正在尝试执行以下查询,以将数据从一个数据库表移动到另一个数据库表,表上有不同的排序规则,字段上有不同的排序规则:

INSERT INTO `db1`.`my_table` SELECT * FROM `db2`.`my_table` WHERE 1 COLLATE 'latin1_swedish_ci';

这总是给我以下错误:

COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'binary'

该表是两个数据库的字符集“latin1”,所以我不知道为什么它在错误中说“二进制”。

如果我不整理,我会得到通常的“非法混合整理”错误:

SQL error #1267 : Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

如何构建这样的查询以使其正常工作?

如果我可以在执行查询文件之前设置字符集和排序规则而不是按查询执行此操作,那就更好了。会严重地让我头疼!

4

0 回答 0