首页 > 解决方案 > 如果我们使用 liquibase 在表的中间添加列,如何生成 SQL

问题描述

假设在 v1 我有一张桌子

create table test1
{
col1 varchar2(10),
col2 varchar2(10),
col3 varchar2(10),
}

在版本 v2 中,要求在中间列中添加表格,col1_2例如

create table test1
{
col1 varchar2(10),
col1_2 varchar2(30),
col2 varchar2(10),
col3 varchar2(10)
}

那么 liquibase 有能力添加重建表的生成表吗?

标签: liquibase

解决方案


不,Liquibase 不能以通用方式执行此操作。您可以删除并重新创建表,但这可能不是您想要做的。如果你想做这样的事情,你需要做一个相当复杂的 SQL 更改。一种方法是按照您想要的顺序创建一个包含列的新表,然后将数据从旧表复制到新表,然后删除旧表,最后将新表重命名为正确的名称。

一个更简单的方法可能是使用视图。

一般来说,表中列的顺序不应该被认为是重要的。


推荐阅读