INSERT事件触发器函数
最近更新时间: 2024-10-17 17:10:00
函数功能实现字段值t_trigger.nc值重写。
postgres=# CREATE TABLE t_trigger
postgres-# (
postgres(# id integer NOT NULL,
postgres(# nc text NOT NULL
postgres(# );
CREATE TABLE
postgres=# CREATE OR REPLACE FUNCTION t_trigger_insert_trigger_func() RETURNS trigger AS
postgres-# $$
postgres$# BEGIN
postgres$# IF NEW.nc = '' THEN
postgres$# NEW.nc = 'TDSQLPG_' || random()::text;
postgres$# END IF;
postgres$# RETURN NEW;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# CREATE TRIGGER t_trigger_insert_trigger BEFORE INSERT ON t_trigger FOR EACH ROW EXECUTE PROCEDURE t_trigger_insert_trigger_func();
CREATE TRIGGER
postgres=# INSERT INTO t_trigger values(1,'');
INSERT 0 1
postgres=# SELECT * FROM t_trigger ;
id | nc
----+-------------------------
1 | TDSQLPG_0.426093454472721
(1 row)
注意:
使用BEFORE,不能使用AFTER,否则重写失效。