人大金仓 PostgreSQL 触发器同步记录数据到另一张表

背景:对老系统进行升级,新系统上线,兼容并行运行一段时间,环境限制,不能使用数据库同步工具,使用数据库触发器进行兼容。

创建触发器

CREATE TRIGGER sync_tz_ly_event_trigger AFTER INSERT 
OR UPDATE 
	OR DELETE ON tz_ly_event FOR EACH ROW
	EXECUTE FUNCTION sync_tz_ly_event_records ( );

创建触发函数

CREATE OR REPLACE FUNCTION "sync_tz_ly_event_records"()
  RETURNS "pg_catalog"."trigger" AS $BODY$ BEGIN
	IF
		TG_OP = 'INSERT' THEN
			INSERT INTO training_course_new ( record_id,class_name )
		VALUES
			( NEW.id,NEW.title );
		ELSIF TG_OP = 'UPDATE' THEN
			UPDATE training_course_new 
			SET class_name = NEW.title 
			WHERE
				record_id = CAST(OLD.id AS TEXT);
		ELSIF TG_OP = 'DELETE' THEN
				DELETE 
				FROM
					training_course_new 
				WHERE
					record_id = CAST(OLD.id AS TEXT);
			END IF;
			RETURN NULL;
		END;
	$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
CREATE OR REPLACE FUNCTION "sync_tz_ly_even
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值