我有一个带CHINESE
的MySQL表DEFAULT CHARSET=latin1
,它有一个NAME
列CHARACTER SET latin1
。我有大量数据存储在此表中。大约一百万行。而且,我想在我的数据库上执行以下命令:
ALTER DATABASE <DATABASE_NAME> DEFAULT CHARACTER SET utf8
ALTER TABLE CHINESE DEFAULT CHARACTER SET utf8
ALTER TABLE CHINESE MODIFY NAME VARCHAR(30) CHARACTER SET utf8
考虑到我在此数据库中存储了大量数据。我应该在我的数据库上运行这些命令吗?这些命令会以任何方式锁定数据库吗?
我正在使用Java来查询和插入数据库中的值。在URI字符串中附加?useUnicode=yes&characterEncoding=UTF-8
会对我有帮助吗?
答案 0 :(得分:0)
需要很长时间, 我认为你输出.sql是最好的,而不是那里的trans-code将latin1替换为utf8,然后在temp表中导回。最后换掉他们的名字。