postgresql 表触发器

postgresql 表触发器,第1张

概述1、先建一个函数,用来执行触发器启动后要执行的脚本 CREATE OR REPLACE FUNCTION "public"."trigger_day_aqi"() RETURNS "pg_catalog"."trigger" AS $BODY$BEGIN --日均值表,没有o3,小时值表,没有o3_8h NEW.so2iaqi=DAY_SO2_AQI

1、先建一个函数,用来执行触发器启动后要执行的脚本

CREATE OR REPLACE FUNCTION "public"."trigger_day_aqi"()  RETURNS "pg_catalog"."trigger" AS $BODY$BEGIN   --日均值表,没有o3,小时值表,没有o3_8h          NEW.so2iaqi=DAY_SO2_AQI(NEW.so2);         NEW.no2iaqi=DAY_NO2_AQI(NEW.no2);         NEW.coiaqi=DAY_CO_AQI(NEW.co);         NEW.o3_8hiaqi=O3_8_AQI(NEW.o3_8h);         NEW.pm10iaqi=PM10_AQI(NEW.pm10);         NEW.pm25iaqi=PM25_AQI(NEW.pm25);         NEW.aqi=NEW.coiaqi;         NEW.primarypol=CO;                 IF NEW.aqi<NEW.no2iaqi   then   NEW.aqi=NEW.no2iaqi;    NEW.primarypol=NO2;    end if;        IF NEW.aqi<NEW.so2iaqi   then   NEW.aqi=NEW.so2iaqi;    NEW.primarypol=SO2;    end if;        IF NEW.aqi<NEW.o3_8hiaqi  then   NEW.aqi=NEW.o3_8hiaqi;   NEW.primarypol=O3_8H;  end if;        IF NEW.aqi<NEW.pm10iaqi  then   NEW.aqi=NEW.pm10iaqi;   NEW.primarypol=PM10;   end if;        IF NEW.aqi<NEW.pm25iaqi  then   NEW.aqi=NEW.pm25iaqi;   NEW.primarypol=PM2.5;  end if;         IF NEW.aqi<=50           then   NEW.primarypol=-;      end if;         NEW.aqilevel=getRank(NEW.aqi);    RETURN NEW;END;$BODY$  LANGUAGE plpgsql VolATILE  COST 100

2、建表的触发器,

CREATE TRIGGER gk_site_day_insert BEFORE INSERT ON gk_site_day    FOR EACH ROW EXECUTE PROCEDURE trigger_day_aqi();
总结

以上是内存溢出为你收集整理的postgresql 表触发器全部内容,希望文章能够帮你解决postgresql 表触发器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存