mysql - 在 Liquibase 中使用现有数据?

标签 mysql database versioning liquibase

在使用Liquibase的时候,有什么办法可以利用已有的数据生成一些要插入的数据吗?

例如,假设我想更新 id 为 5 的行,但我事先并不知道该 id 将是 5,因为它链接到另一个表,我实际上将从该表获取 id .我有什么办法可以告诉 Liquibase 从 SELECT 查询中获取 ID?

我猜这不太可能,因为我感觉 Liquibase 确实是为非常结构化的非动态方法而设计的,但问问也无妨。

谢谢。

最佳答案

您不能使用内置更改来根据现有数据插入数据,但您可以使用带有嵌套选择的插入语句的标记。

例如:

<changeSet>
  <sql>insert into person (name, manager_id) values ('Fred', (select id from person where name='Ted'))</sql>
</changeSet>

注意:SQL(以及对插入+选择的支持)取决于数据库供应商。

关于mysql - 在 Liquibase 中使用现有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9909597/

相关文章:

Mysql——一道简单的数据库设计题

sql-server - 什么是 "Instead of"触发器?

sql - 归一化硬件

installation - Homebrew 安装特定版本的公式?

elasticsearch - 每次在Elasticsearch中更新文档时自动增加字段值

php - 如何使用 PHP 在 Mysql 中存储数组

python - 将sql结果转换为list python

mysql - 在 MySQL 中存储包含 2 个固定字符和 4 个数字的数据的性能方式?

windows-installer - MSI安装程序失败,但没有删除以前的安装

mysql - 将一行两个结果相减