gpt4 book ai didi

mysql - 使用 Liquibase xml 更新列名称时出错

转载 作者:可可西里 更新时间:2023-11-01 09:00:04 31 4
gpt4 key购买 nike

我正在尝试在 Linux 机器 MYSQL 上借助 Liquibase xml 更新数据库列名称。

我更新列的xml代码是

 <renameColumn tableName="AAA" oldColumnName="bbb_id" newColumnName="ccc_id" columnDataType="bigint" />

但此行抛出错误,如 ERROR [2017-11-16 15:42:28,247] liquibase: migrations.xml: migrations.xml::3.15.1::maulik.kakadiya: Change Set migrations。 xml::3.15.1::maulik.kakadiya 失败。错误:将“./MY_DB/#sql-4bf_322”重命名为“./MY_DB/AAA”时出错(errno:150)[SQL 失败:ALTER TABLE MY_DB.AAA CHANGE bbb_id ccc_id BIGINT]

出现此错误后,我尝试使用以下简单的 sql 查询

<sql>ALTER TABLE `AAA` CHANGE COLUMN `bbb_id` `ccc_id` BIGINT(20);
<comment>find onther why, beacuse rename query throw error</comment>
</sql>

“bbb_id”也是一个外键引用。

但是这个语句抛出同样的错误。

但是如果我按照下面的查询运行这个语句的简单 SQL 查询

ALTER TABLE `AAA` CHANGE COLUMN `bbb_id` `ccc_id` BIGINT(20);

然后此 SQL 查询成功运行,但如果我尝试使用 Liquibase xml 进行相同操作,则此代码会抛出错误。

对这类问题有什么想法吗?

最佳答案

我不知道为什么会这样,但我可以建议一个故障排除步骤 - 不要使用 liquibase update 命令,而是尝试使用 updateSQL 命令,它将生成 liquibase 运行的 SQL。将其与您手动执行的操作进行比较,看看您是否可以分辨出不同之处。

关于mysql - 使用 Liquibase xml 更新列名称时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350164/

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