【问题标题】:How to generate 'DDL' of table in which the 'TABLE_COLLATION' is not 'latin1_swedish_ci' but 'utf8_general_ci'如何生成“TABLE_COLLATION”不是“latin1_swedish_ci”而是“utf8_general_ci”的表的“DDL”
【发布时间】:2012-11-29 09:59:37
【问题描述】:

我是新手! 我在名为my.ini 的文件中修改了default-character-set=utf8character-set-server=utf8。 但是生成的表有TABLE_COLLATION=latin1_swedish_ci

注意:JPA hibernate-implements 生成的表:

【问题讨论】:

  • 是的,DDL的字符集是latin1而不是utf8,为什么?
  • 下次请贴代码,不要发代码图片。

标签: mysql database spring character-encoding


【解决方案1】:

如果您没有在 CREATE TABLE 语句中指定字符集/排序规则,那么将使用数据库字符集/排序规则创建新表。

因此,对于具有 latin1 字符集的现有数据库,您应该执行以下操作 -

CREATE TABLE table1 (
  column1 VARCHAR(20),
  column2 VARCHAR(20)
)
CHARACTER SET utf8
COLLATE utf8_general_ci;

-- show current database name
SELECT DATABASE();

-- show CREATE DATABASE statement with charset\collation for DB
SHOW CREATE DATABASE <database name>;

【讨论】:

  • 但是默认设置已经修改为utf8而不是latin1
  • 检查您尝试创建新表的数据库。我在回答中添加了一些注意事项。
  • 哦,对不起,现在好了!我删除了旧数据库并创建了一个新数据库,然后它就可以工作了!非常感谢。
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 2016-11-10
  • 2022-08-15
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多