- 2020年3月31日 12:26 PM
- PostgreSQL | 技術系
-
Tweet
関わっていた案件で、PostgresSQLのTriggerを使って、Insertする特定のカラム値を、TriggerのInsert Beforeを使って計算して挿入するというケースがありました。
Qiitaの以下の記事がわかりやすかったです。
PostgreSQLでトリガを作成し、同一テーブル内に値を追加する
https://qiita.com/grassfield/items/60fad9c1d4a8d205bff3
CREATE OR REPLACE FUNCTION culc_totalworktime() RETURNS trigger AS $BODY$ BEGIN NEW.勤務時間 := NEW.終了時刻-NEW.開始時刻-NEW.休憩時間; -- 解説 RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION culc_totalworktime() OWNER TO postgres;
上記のようなかんじで値を返すトリガを作成して
CREATE TRIGGER totalworktime_trg BEFORE INSERT OR UPDATE ON 勤務実績 FOR EACH ROW EXECUTE PROCEDURE culc_totalworktime();
上記のようにINSERT BEFOREでトリガを呼び出してやれば、カラムに計算された値が挿入されました。
- 新しい: [Cakephp3】validationとbuildRulesの違いや使い分けについて
- 古い: kusanagi+nginxでall-in-one wp migrationのインポートが100%で止まる対処法
コメント:0
トラックバック:0
- この記事のトラックバック URL
- https://www.itblog.jp/wp-trackback.php?p=9942
- トラックバックの送信元リスト
- PostgresSQLのTriggerで、insertする値をINSERT BEFOREで計算する - ITblog より