PL/pgSQLとの出会い
今現在PostgreSQLにてSQLコマンドを学習中。Functionの作成にて謎のLANGUAGE plpqsqlという指定に出会ったため、軽くPL/pgSQLについて調べてみた。
CREATE OR REPLACE FUNCTION makeusername
(firstname TEXT, lastname TEXT)
RETURNS TEXT
AS $$
BEGIN
RETURN LOWER(SUBSTRING(firstname, 1,1) || lastname);
END;
$$ LANGUAGE plpgsql;
参考元サイト
公式ドキュメント?
https://www.postgresql.jp/document/7.2/programmer/plpgsql.html
SQL文との違い
- SQLの拡張版(SQL文がすべて使える)
- Ifによる制御が可能
- 初めて実行されたときに実行計画なるものが作成され、次回以降再利用できるようになり、時間短縮になる
まとめ
関数定義にて複雑な計算を行わせる場合はplpgsqlを使おう