谁能帮我把这个oracle触发器改成postgreSQL的 谢谢

yrcy0418 yrcy0418 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
原oracle触发器脚本

create or replace trigger TIB_T_RACKTEMPHUM_UPDATED
after insert on t_racktemphum
for each row
declare
v_count int;
-- local variables here
begin
select count(*) into v_count from T_RACKTEMPHUM_UPDATED where sensorid=:new.sensorid;
if v_count>0 then
update T_RACKTEMPHUM_UPDATED set temp=:new.temp,humid=:new.humid,collecttime=:new.collecttime
where sensorid=:new.sensorid;
else
insert into T_RACKTEMPHUM_UPDATED values (:new.sensorid,:new.temp,:new.humid,:new.collecttime);
end if;
end TIB_T_RACKTEMPHUM_UPDATED;


建表语句


CREATE TABLE "public"."t_racktemphum" (
"id" numeric DEFAULT NULL NOT NULL,
"sensorid" numeric(10) DEFAULT NULL::numeric,
"temp" numeric(8,2) DEFAULT NULL::numeric,
"humid" numeric(8,2) DEFAULT NULL::numeric,
"collecttime" timestamp(6) DEFAULT NULL::timestamp without time zone,
CONSTRAINT "t_racktemphum_pkey" PRIMARY KEY ("id"),
CONSTRAINT "t_racktemphum_id_check" CHECK (id IS NOT NULL),
CONSTRAINT "t_racktemphum_id_check1" CHECK (id IS NOT NULL)
)
WITH (OIDS=FALSE)
;

ALTER TABLE "public"."t_racktemphum" OWNER TO "postgres";

COMMENT ON TABLE "public"."t_racktemphum" IS '机柜温湿度采集表';

COMMENT ON COLUMN "public"."t_racktemphum"."id" IS '流水号';

COMMENT ON COLUMN "public"."t_racktemphum"."sensorid" IS '传感器编号';

COMMENT ON COLUMN "public"."t_racktemphum"."temp" IS '温度';

COMMENT ON COLUMN "public"."t_racktemphum"."humid" IS '湿度';

COMMENT ON COLUMN "public"."t_racktemphum"."collecttime" IS '采集时间';;


实现功能是每当t_racktemphum执行插入时,就更新T_RACKTEMPHUM_UPDATED表sensorid相等的记录,如果没有做插入,有就做更新
...全文
评论
收藏 已收藏
分享
返回顶部
yrcy0418
PostgreSQL 974 成员 1,472 内容