gpt4 book ai didi

MySQL,将表从 Latin-1 更改为 UTF-8

转载 作者:行者123 更新时间:2023-11-29 06:21:43 24 4
gpt4 key购买 nike

我想删除数据库中的 Latin-1 字符的新条目,只允许 UTF-8。我计划更改表并进行以下更改:

字符集:latin1 -> utf-8

排序规则:latin1_swdish_ci -> utf8_general_ci

相关表有 100 万行。这是一个好主意吗?这样做有什么风险?我尝试输入的非 utf-8 数据会怎样?之前输入的非 utf-8 数据会怎样?

最佳答案

您应该创建一个表副本,启动一个事务,插入旧表中的所有行,然后提交。最安全的方法。

总结一下:

CREATE TABLE duplicate ... (with the charset you like, etc)

SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO duplicate (...field-list...)
SELECT (...field-list...) from original_table;
COMMIT;

ALTER TABLE original RENAME TO original_backup;
ALTER TABLE duplicate RENAME TO original;

您必须小心唯一索引和自动增量字段。确保创建不带索引的重复表,以使插入快速,然后添加它们。

关于MySQL,将表从 Latin-1 更改为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com