gpt4 book ai didi

sql-server - 如何在 Liquibase 格式化 SQL 变更日志中定义参数

转载 作者:行者123 更新时间:2023-12-01 06:19:18 25 4
gpt4 key购买 nike

我有一个这样写的 SQL

DECLARE @CurrencyIdEUR INT = 1;
INSERT Currency (Id, CurrencyCode) VALUES (@CurrencyIdEUR, 'EUR');
INSERT Price (Price, Currency) VALUES (123.45, @CurrencyIdEUR);

我想将它添加到 Liquibase 格式的 SQL 中,但我不知道如何添加此类参数。有一个密切的讨论,但不是“如何”部分,herehere on the Liquibase page他们写道,这是可能的,但不是如何。

--liquibase formatted sql

--property name:CurrencyIdEUR value:1

--changeset Stix:123
INSERT Currency (Id, CurrencyCode) VALUES (${CurrencyIdEUR}, 'EUR');
...

这是我最近的尝试。如果你能帮助我正确的部分,我会很高兴。

最佳答案

TL/DR:似乎它没有针对 sql 变更日志实现 - 但属性是从 xml 变更日志文件传递的。

我查看了 FormattedSqlChangeLogParser 的代码,找不到任何对属性解析的引用。

作为一种解决方法,您可以在 xml 更改日志文件中输入属性。这也将使该属性可用于所有 sql 脚本。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog ...>

<property name="CurrencyIdEUR" value="555"/>

<include relativeToChangelogFile="true" file="DoStuff.sql" />

</databaseChangeLog>

在 DoStuff.sql 中:

--changeset peter.henell:dostuff-procedure endDelimiter:\nGO splitStatements:true
CREATE PROCEDURE DoStuff
AS
BEGIN
SELECT 1, 2, ${CurrencyIdEUR};
END

关于sql-server - 如何在 Liquibase 格式化 SQL 变更日志中定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36772181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com