db2不断返回“duplicate name”

1yjd4xko  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(690)

如何通过flyway向db2表添加列?我有两个flyway迁移脚本。v1是数据库的初始创建。v2正在尝试向v1中遗漏的不同表中添加一列。

ALTER TABLE TABLE1
ADD CODE VARCHAR(20);

ALTER TABLE TABLE2
ADD CODE VARCHAR(20);

ALTER TABLE TABLE3
ADD CODE VARCHAR(20);

这看起来很简单。然而,flyway得到了 DB2 SQL Error: SQLCODE=-612, SQLSTATE=42711, SQLERRMC=CODE 这是一次尝试添加多行重复列时的错误。因此,在表1中添加一列是可行的,表2也是如此。但是,如果两个都执行,我就得到了错误。
我应该如何构造这些查询以使它们不冲突?

krugob8w

krugob8w1#

尽管存在db2错误,但这不是db2问题,而是flyway问题。不能将同一列添加到具有连续查询的多个表中。中间必须有一个查询,或者查询必须位于不同的迁移文件中。
这很管用。

ALTER TABLE TABLE1 ADD CODE VARCHAR(20);
CREATE INDEX index1 ON TABLE1(CODE);

ALTER TABLE TABLE2 ADD CODE VARCHAR(20);
CREATE INDEX index2 ON TABLE2(CODE);

ALTER TABLE TABLE3 ADD CODE VARCHAR(20);
CREATE INDEX index2 ON TABLE3(CODE);

相关问题