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