Bak*_*ker 5 postgresql dynamic-sql plpgsql
有没有办法动态使用变量名,我的意思是将其组成一个字符串,然后使用它。
请不要告诉我使用数组,我展示的示例只是为了更好的图片而进行的简化。
do $$
declare
var1 int:=1;
var2 int:=2;
var3 int:=3;
i int;
begin
raise notice 'Variable x %' , var1;
raise notice 'Variable x %' , var2;
raise notice 'Variable x %' , var3;
for i in 1..3 loop raise
notice 'Variable x %' , 'var' || i;
end loop;
end
$$
Result
NOTICE: Variable x 1
NOTICE: Variable x 2
NOTICE: Variable x 3
NOTICE: Variable x var1
NOTICE: Variable x var2
NOTICE: Variable x var3
Run Code Online (Sandbox Code Playgroud)
所以我需要这样的东西,除了结果应该是数字而不是字符串,Variable x var1但是Variable x 1
并且执行也不起作用
do
$$
declare
var1 text = 'car';
var2 text = 'truck';
var3 text = 'boat';
code text ;
begin
for i in 1..3 loop
code = 'Insert into My_table values (' || i || ',' || 'var' || i || ');';
execute code;
end loop;
end
$$
ERROR: column "var1" does not exist
LINE 1: Insert into My_table values (1,var1);
Run Code Online (Sandbox Code Playgroud)
关于如何动态组成变量名称的任何想法,正如我所说,这些示例很简单只是为了表明我的观点。我需要更改的不仅仅是变量中的数字,因此数组对我来说不是一个解决方案。
| 归档时间: |
|
| 查看次数: |
2801 次 |
| 最近记录: |