触发器函数 本页介绍天翼云TeleDB数据库PL/pgsql的触发器函数。 INSERT事件触发器函数 函数功能实现字段值ttrigger.nc值重写。 plaintext teledb CREATE TABLE ttrigger teledb ( teledb( id integer NOT NULL, teledb( nc text NOT NULL teledb( ); CREATE TABLE teledb CREATE OR REPLACE FUNCTION ttriggerinserttriggerfunc() RETURNS trigger AS teledb $$ teledb$ BEGIN teledb$ IF NEW.nc '' THEN teledb$ NEW.nc 'teledbpg' random()::text; teledb$ END IF; teledb$ RETURN NEW; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb CREATE TRIGGER ttriggerinserttrigger BEFORE INSERT ON ttrigger FOR EACH ROW EXECUTE PROCEDURE ttriggerinserttriggerfunc(); CREATE TRIGGER teledb INSERT INTO ttrigger values(1,''); INSERT 0 1 teledb SELECT FROM ttrigger ; id nc + 1 teledbpg0.426093454472721 (1 row) 注意使用BEFORE,不能使用AFTER,否则重写失效。 UPDATE 事件触发器函数 不准许更新ttrigger.nc字段值为teledbpg。 plaintext teledb CREATE OR REPLACE FUNCTION ttriggerupdatetriggerfunc() RETURNS trigger AS teledb $$ teledb$ BEGIN teledb$ 不准许ttrigger.nc值为 teledbpg teledb$ IF NEW.nc 'teledbpg' THEN teledb$ NEW.nc OLD.nc ; teledb$ END IF; teledb$ RETURN NEW; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb CREATE TRIGGER ttriggerupdatetrigger BEFORE UPDATE ON ttrigger FOR EACH ROW EXECUTE PROCEDURE ttriggerupdatetriggerfunc(); CREATE TRIGGER teledb