plpgsqlでfunction
1. pl/pgsqlでfunction定義をしてみる pl/pgsqlでfunctionをつくってダミーデータ挿入を省力化したかったので色々調べてみたまとめ
1. pl/pgsqlでfunction定義をしてみる 1.1. こんな動機 1.2. 試行錯誤の流れ 1.2.1. ベースとなるINSERT文を生成する 1.3. 完成品 1.3.1. 知りし事などいろいろ 1.3.1.1. CREATE OR REPLACE FUNCTION (引数) RETURN 戻り値 1.3.1.2. AS $$~$$ 1.3.1.3. DECLARE 1.3.1.4. BEGIN 1.3.1.4.1. num1:=arg_records 1.3.1.4.2. FOR a IN 1..num1 LOOP END LOOP 1.3.1.5. EXECUTE 1.3.1.6. RETURN true 1.3.1.7. END 1.3.1.8. LANGUAGE plpgsql 1.3.1.9. DROP 1.3.1.10. 実行する 1.4. 感想とか課題 1.1. こんな動機 ダミーデータをINSERTがめんどくさい
エクセルやマクロでしこしこ作るのもなんかなぁ
→ pgsqlでfunction作ってあげると必要に応じて呼び出すだけでよいので それをライブラリ化したらワンライナーみたいに便利になりそう…!
1.2. 試行錯誤の流れ 1.2.1. ベースとなるINSERT文を生成する 一先ず作成。
-- insert INSERT INTO log (log_id, task_id, log_decl, log_real) VALUES ( (SELECT CASE WHEN 'L' || MAX(TO_NUMBER(SUBSTRING(log_id,2,255),'999999999'))+1 ISNULL THEN 'L1' ELSE 'L' || MAX(TO_NUMBER(SUBSTRING(log_id,2,255),'999999999'))+1 END FROM log), 'T2', 3, 3 ); ほんでもってこれについて、