gpt4 book ai didi

java - Liquibase:未设置 MEDIUMTEXT 字符集

转载 作者:行者123 更新时间:2023-11-29 07:21:30 26 4
gpt4 key购买 nike

我为 mysql aurora 数据库设置了 liquibase 更改:

<changeSet author="xxxxxx" id="1553175489296-3">
<createTable tableName="event">
<column name="id" type="VARCHAR(64)">
<constraints primaryKey="true"/>
</column>
<column name="created" type="datetime">
<constraints nullable="false"/>
</column>
<column name="created_by" type="VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"/>
<column name="description" type="MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"/>
<column name="external_service_config" type="MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"/>
<column name="language" type="VARCHAR(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"/>
</createTable>
</changeSet>

VARCHAR(*) 字段类型编码设置正确,但 MEDIUMTEXT 仍然是默认的数据库编码。

我做错了什么吗?

PS:我不能去

<modifySql dbms="mysql">
<append value="ENGINE=INNODB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci"/>
</modifySql>

因为它为整个表设置了编码,我不能这样做,因为我的键长于 787 字节。所以列特定编码对我来说是唯一的方法。

最佳答案

事实证明这很有效。必须放在</createTable>之后如果你有任何标签 MEDIUMTEXT该表中的字段。

<modifySql dbms="mysql">
<replace replace="MEDIUMTEXT"
with="MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"/>
</modifySql>

关于java - Liquibase:未设置 MEDIUMTEXT 字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56099543/

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