首页 > 其他分享 >【PG】临时禁用约束-法一

【PG】临时禁用约束-法一

时间:2024-03-27 22:58:31浏览次数:24  
标签:end 禁用 character disable trigger PG act 法一 pg

create or replace function disable_triggers(a boolean, nsp character varying) returns void as
$$
declare 
act character varying;
r record;
begin
    if(a is true) then
        act = 'disable';
    else
        act = 'enable';
    end if;

    for r in select c.relname from pg_namespace n
        join pg_class c on c.relnamespace = n.oid and c.relhastriggers = true
        where n.nspname = nsp
    loop
        execute format('alter table %I %s trigger all', r.relname, act); 
    end loop;
end;
$$
language plpgsql;

If you want to disable all triggers with certain trigger function it could be:

create or replace function disable_trigger_func(a boolean, f character varying) returns void as
$$
declare 
act character varying;
r record;
begin
    if(a is true) then
        act = 'disable';
    else
        act = 'enable';
    end if;

    for r in select c.relname from pg_proc p 
        join pg_trigger t on t.tgfoid = p.oid
        join pg_class c on c.oid = t.tgrelid
        where p.proname = f
    loop
        execute format('alter table %I %s trigger all', r.relname, act); 
    end loop;
end;
$$
language plpgsql;

标签:end,禁用,character,disable,trigger,PG,act,法一,pg
From: https://www.cnblogs.com/Jeona/p/18100498

相关文章

  • 【PG】临时禁用约束-法二
    CREATEORREPLACEFUNCTIONdisable_triggers(aboolean,nspcharactervarying)RETURNSvoidAS$BODY$declareactcharactervarying;rrecord;beginif(aistrue)thenact='disable';elseact='enable';......
  • 【PG】postgresql中的bytea中的null 和 character varying 的null 是等值的吗
    在PostgreSQL中,NULL值是用于表示缺失或未知值的特殊值。无论数据类型是什么,NULL值都被视为一个独立的概念,与其他值不相等,包括bytea和charactervarying。因此,在PostgreSQL中,bytea类型的NULL值与charactervarying类型的NULL值是不相等的。它们被视为不同的值,无......
  • 【PG】hibernate postgresql character varying = bytea 错误
    如果你在使用Hibernate和PostgreSQL时遇到了"charactervarying=bytea"错误,那么可能是因为你在实体类中的属性映射或查询条件中将一个类型为"charactervarying"的属性与一个类型为"bytea"的列进行了混淆。要解决这个错误,你需要确保在Hibernate实体类的属性映射中......
  • FPGA原语
    ODDR代表的是双数据速率输出寄存器(OutputDoubleDataRateRegister)。这种原语用于在一个时钟周期内产生两个数据输出,通常用于高速数据传输和时钟数据恢复等应用。在以下示例VHDL代码中,ODDR原语被用来生成一个双数据速率的输出信号ad9653_1clk。ad1_clk:ODDRgenericmap(......
  • DDPG强化学习算法应用到TORCS仿真平台
    一、DDPG算法介绍1.前身DQN算法在介绍DDPG算法之前,需要首先明确它的前身DQN算法。DQN(DeepQ-Network)是一种用于强化学习的深度学习算法,由DeepMind公司开发。它结合了深度学习和Q-learning算法,旨在解决复杂环境下的强化学习问题。DQN算法在解决复杂环境下的强化学习问题方面取......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(八)ARM+FPGA的优势,PS控制PL产生需要的PWM波(基于AXI
    上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序,这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势,PS可以控制PL产生定制化的行为,而不需要去动硬件代码。这次实验是产生频率和占空比可调的PWM(PulseWidthModulation)信号,调用8次,产生8路PWM......
  • pgsql基础
    https://www.cnblogs.com/chenyablog/p/14647273.html--查看版本SELECTversion();--创建uuid扩展createextension"uuid-ossp";--生成一个uuidSELECTuuid_generate_v4();SELECT*fromabcwherebody.key="22"SELECTinfo->'customer'AS......
  • 基于FPGA实现的自适应三速以太网
    一、三速以太网千兆以太网PHY芯片是适配百兆和十兆的,十兆就不管了,我们的设计只适应千兆和百兆。根据上图,我们是可以获取当前主机网口的速率信息的。always@(posedgew_rxc_bufr)beginif(w_rec_valid=='d0)beginro_speed<=w_rec_data[2:1];......
  • FPGA学习DDR篇—MIG IP核使用
    文章目录一、MIGIP核配置详解1、第一页2、第二页3、第三页4、第四页5、第五页6、第六页7、第七页8、第八页9、第九页10、第十页二、MIG仿真一、MIGIP核配置详解1、第一页2、第二页3、第三页类型选择DDR34、第四页ClockPeriod:DDR3芯片运行的时钟速率,该数......
  • FPGA与以太网:概念知识
    参考:以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍-CSDN博客OSI七层模型、TCP/IP四层模型(超详细!!!!!)-CSDN博客TCP/IPLWIPFPGA笔记_rltcpnet和lwip-CSDN博客达芬奇Pro的以太网PHY芯片型号是YT8531(底板);TCP/IP四层模型TCP/IP(TransmissionControlProtocol/InternetProt......