我试图在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 failed. Error: Error on rename of './MY_DB/#sql-4bf_322' to './MY_DB/AAA' (errno: 150) [Failed SQL: ALTER TABLE MY_DB.AAA CHANGE bbb_id ccc_id BIGINT]
在得到这个错误后,我尝试了bellow简单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进行相同的操作,那么这段代码就会抛出错误。
对这种问题有什么想法吗?。