mysql - liquibase中的loadUpdateData,仅从csv中选择一些列

标签 mysql liquibase

假设有以下 csv:

a,b,c
1,2,3

其中 a、b、c 是列名,1、2、3 是值。 是否可以只加载 a、b 列?

<loadUpdateData tableName="TABLE" 
            file="file.csv"
            primaryKey="a">     
            <column name="a" header="a"/>
            <column name="b" header="b"/>
</loadUpdateData>

这会产生一个 SQL 错误,因为它会尝试插入列 c。 我正在使用 MySQL。

最佳答案

我自己还没有尝试过,但查看代码(LoadDataChange)似乎有一个选项可以“跳过”列配置:

if ("skip".equalsIgnoreCase(columnConfig.getType())) {
    continue;
}

所以也许您可以为“c”添加一个列配置并将其类型设置为“skip”:

<column name="c" header="c" type="skip" />

关于mysql - liquibase中的loadUpdateData,仅从csv中选择一些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30884167/

相关文章:

mysql - 如何在没有标题的情况下将数据导出到mysql中的csv?

mysql - 表重复条目

postgresql - 使用带有 liquibase 变更集上下文属性的 spring boot 配置文件来管理变更集范围

liquibase - Liquibase 中 setDefaultSchemaName() 和 setLiquibaseSchemaName() 之间的区别

MySQL通过liquibase建表时报错

PHP:$_SESSION 变量未传递到另一个文件

mysql - 处理 ON INSERT 触发器时如何锁定 innodb 表?

MySQL 连接和内部选择

oracle11g - Liquibase 不编译 oracle pkb/pks 包,

Liquibase <loadData> 带有相对于脚本文件的文件