【postgreSQL】SQLだけでループ処理
昔SQL Serverを使ってたころはよくクエリアナライザでwhile文を作って、テストデータを作ってましたが、postgreSQLでもできるのかなーと思って調べてみました。
結論から言うと、postgreSQLではユーザ定義関数(ストアドでもOK)を作って、それを実行する手順となるようです。
こことか参考に
実行したサンプル↓
drop function default.instest1();
create function default.instest1() returns int as
'
declare
i integer;
sql varchar(200);
begin
i := 200;
while i < 220 loop
i:= i+1;
sql := ''insert into default.sample( a0010, a0020, a0070 ) values( '' || i || '', '' || i || '', ''''suga'''' )'';
execute sql;
end loop;
return 0;
end;
'
language 'plpgsql'
select default.instest1()
できるにはできるけど、めんどくさいし分かりにくい。
これだったらPHPでループ文書いた方が楽。