gpt4 book ai didi

sql - 在 HSQLDB 中,您可以选择一个变量并在 INSERT 中使用它吗

转载 作者:行者123 更新时间:2023-12-01 14:37:27 26 4
gpt4 key购买 nike

我正在使用内存中的 HSQLDB 进行集成测试。

目前我们有各种测试 SQL 文件,其中包含许多 INSERT 语句,例如

insert into customer(id, name, email) values (99, 'John Doe', 'john@test.com');

...

insert into order(id, owner, itemref, quantity) values(1, 99, 'abc', 1);
insert into order(id, owner, itemref, quantity) values(2, 99, 'def', 1);
insert into order(id, owner, itemref, quantity) values(3, 99, 'ghi', 1);

是否可以对变量执行 SELECT 然后在 INSERT 中使用它?

例如像这样的东西:

declare custid bigint;
custid = select id from customer where email = 'john@test.com';

insert into order(id, owner, itemref, quantity) values(1, @custid, 'abc', 1);
insert into order(id, owner, itemref, quantity) values(2, @custid, 'def', 1);
insert into order(id, owner, itemref, quantity) values(3, @custid, 'ghi', 1);

我试过查看 HSQLDB 文档,但所有关于“变量”的信息都是关于过程的,而不是简单的插入等。

最佳答案

您尝试使用 HSQLDB SqlTool 实现的语法是:

* 变量 ~
SQL 查询返回要分配的值;

然后,您可以通过以下方式在脚本中进一步使用它的值:

SOME OTHER SQL QUERY WHERE *{VARNAME};

因此上面的代码可以这样写:

* custid ~
select id from customer where email = 'john@test.com';

insert into order(id, owner, itemref, quantity) values(1, *{custid}, 'abc', 1);
insert into order(id, owner, itemref, quantity) values(2, *{custid}, 'def', 1);
insert into order(id, owner, itemref, quantity) values(3, *{custid}, 'ghi', 1);

引用:HSQLDB SqlTool - PL User Variables

关于sql - 在 HSQLDB 中,您可以选择一个变量并在 INSERT 中使用它吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638331/

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