⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trig_loc.sql

📁 公安户口管理系统公安户口管理系统公安户口管理系统公安户口管理系统公安户口管理系统
💻 SQL
字号:
------------当插入一条延期信息时,修改暂住人员信息中的信息--------------

drop trigger tr_addyqrq;
CREATE TRIGGER tr_addyqrq after insert On yqb000 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
  UPDATE zzxxjl  
     SET yqrq00 = new_dept.jsrq00,   --起始日期
         yqqx00 = new_dept.yxq000    --有效期
   WHERE zzxxjl.xh0000 = new_dept.zzxxzj   ;
END;

--------------修改暂住信息表中延期日期信息-------------------------

drop trigger tr_removeyqrq;
CREATE TRIGGER tr_removeyqrq before UPDATE On yqb000 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
  DECLARE li_rowcount integer ;
  DECLARE ls_jsrq00 char(8);
  DECLARE ls_yxq000 char(1);
  DECLARE ls_xh char(20);
  DECLARE ls_sql varchar(500);
  DECLARE ls_czwhxh char(12);
  
  if old_dept.jsrq00 <> new_dept.jsrq00 or old_dept.yxq000 <> new_dept.yxq000 then 
       UPDATE zzxxjl  
        SET yqrq00 = new_dept.jsrq00,   --起始日期
         yqqx00 = new_dept.yxq000    --有效期
       WHERE zzxxjl.xh0000 = new_dept.zzxxzj   ;   
  end if;
  
  if old_dept.zlbz00 = 'I' AND new_dept.zlbz00 = 'D' then 
   select count(*) into li_rowcount from yqb000 
   where zzxxzj = old_dept.zzxxzj;
   
   SELECT xh0000 into ls_czwhxh FROM sequer WHERE xhlx00 = 'zwhxh0'   ;
   update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zwhxh0'   ;  
    
   set ls_jsrq00 = '';
   set ls_yxq000 = '';
   
    if li_rowcount > 1 then --如果有多次延期,取出最后一次延期的数据
       select max(xh0000) into ls_xh from yqb000 where  zzxxzj = old_dept.zzxxzj
              and xh0000 <> old_dept.xh0000 and zlbz00 = 'I';
       select jsrq00,yxq000 into ls_jsrq00,ls_yxq000 from yqb000 where xh0000 = ls_xh;
	  UPDATE zzxxjl  
	     SET yqrq00 = ls_jsrq00,   --起始日期
        	 yqqx00 = ls_yxq000    --有效期
	   WHERE zzxxjl.xh0000 = old_dept.zzxxzj   ;
     else --如果只发生一次延期
	  UPDATE zzxxjl  
	     SET yqrq00 = '',   --起始日期
	         yqqx00 = ''    --有效期
	   WHERE zzxxjl.xh0000 = old_dept.zzxxzj   ;
     end if;
     
     set ls_sql = 'UPDATE zzxxjl SET yqrq00 = ' + CHAR(39) 
     + ls_jsrq00 + CHAR(39) + ' , yqqx00 = ' + CHAR(39) + ls_yxq000
     + CHAR(39) + ' WHERE xh0000 =  ' + CHAR(39) + old_dept.zzxxzj + CHAR(39)  ;
	
     INSERT INTO czwh00 (sql000,xh0000) VALUES (ls_sql,ls_czwhxh )  ;
   end if;
END;

-----------------删除暂住人员相关信息----------------


drop trigger tr_delete_xgxx;
CREATE TRIGGER tr_delete_xgxx before delete  On zzxxjl 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
   DELETE FROM xt0000 WHERE zzxxzj = OLD_DEPT.XH0000   ;
   DELETE FROM zp0000 WHERE zzzbh0 = OLD_DEPT.zzzbh0   ;

END;

-----------------删除携童信息,迁移信息,延期信息,注销信息----------------


drop trigger tr_delete_other;
CREATE TRIGGER tr_delete_other before UPDATE OF zlbz00  On zzxxjl 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN

  DECLARE ls_sql varchar(500);
  DECLARE ls_czwhxh char(12);

--删除携童
  update xt0000 set zlbz00 = 'D' WHERE zzxxzj = old_dept.xh0000   ;

   SELECT xh0000 into ls_czwhxh FROM sequer WHERE xhlx00 = 'zwhxh0'   ;
   update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zwhxh0'   ;  
   set ls_sql = 'update xt0000 set zlbz00 = ' + CHAR(39) + 'D' + CHAR(39) + ' WHERE zzxxzj = ' + CHAR(39) + old_dept.xh0000 + CHAR(39);
   INSERT INTO czwh00 (sql000,xh0000) VALUES (ls_sql,ls_czwhxh )  ;
     
--删除延期表
  update yqb000 set zlbz00 = 'D' WHERE zzxxzj = old_dept.xh0000   ;

   SELECT xh0000 into ls_czwhxh FROM sequer WHERE xhlx00 = 'zwhxh0'   ;
   update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zwhxh0'   ;  
   set ls_sql = 'update yqb000 set zlbz00 = ' + CHAR(39) + 'D' + CHAR(39) + ' WHERE zzxxzj = ' + CHAR(39) + old_dept.xh0000 + CHAR(39);
   INSERT INTO czwh00 (sql000,xh0000) VALUES (ls_sql,ls_czwhxh )  ;
 
--删除迁移表
  update qyb000 set zlbz00 = 'D' WHERE zzxxzj = old_dept.xh0000   ;

   SELECT xh0000 into ls_czwhxh FROM sequer WHERE xhlx00 = 'zwhxh0'   ;
   update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zwhxh0'   ;  
   set ls_sql = 'update qyb000 set zlbz00 = ' + CHAR(39) + 'D' + CHAR(39) + ' WHERE zzxxzj = ' + CHAR(39) + old_dept.xh0000 + CHAR(39);
   INSERT INTO czwh00 (sql000,xh0000) VALUES (ls_sql,ls_czwhxh )  ;

--违法信息表
   UPDATE FZDJB0 SET ZLBZ00 = 'D' WHERE ZZZBH0 = old_dept.zzzbh0   ;

   SELECT xh0000 into ls_czwhxh FROM sequer WHERE xhlx00 = 'zwhxh0'   ;
   update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zwhxh0'   ;  
   set ls_sql = 'update FZDJB0 set zlbz00 = ' + CHAR(39) + 'D' + CHAR(39) + ' WHERE ZZZBH0 = ' + CHAR(39) + old_dept.ZZZBH0 + CHAR(39);
   INSERT INTO czwh00 (sql000,xh0000) VALUES (ls_sql,ls_czwhxh )  ;
   
END;


-----------------在暂住信息表中插入标志------------------------

drop trigger tr_addzlbz;
CREATE TRIGGER tr_addzlbz after insert  On zzxxzx 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
  UPDATE zzxxjl SET zlbz00 = 'Z'  
   WHERE xh0000 = new_dept.xh0000   ;

END ;



-------------------产生照片维护信息---------------------------

drop trigger tr_zpwhxx;

CREATE TRIGGER tr_zpwhxx before UPDATE  On zp0000
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN

  DECLARE ls_xh char(12);

  SELECT xh0000 into ls_xh FROM sequer WHERE xhlx00 = 'zpwhxh'   ;
  update sequer set xh0000 = xh0000 + 1 where  xhlx00 = 'zpwhxh'   ;  
 
  INSERT INTO zpwh00 (zzzbh0,xh0000) VALUES ( old_dept.zzzbh0,ls_xh )  ;
END;


----------------当插入一条迁移信息时,修改暂住人员的暂住信息--------------

drop trigger tr_addqydz;
CREATE TRIGGER tr_addqydz after insert On qyb000 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN

  UPDATE  zzxxjl  
     SET zcdssx = new_dept.zcdssx,
         zcdxz0 = new_dept.zcdxz0,
         zcdpcs = new_dept.zcdpcs,
         zcdljx = new_dept.zcdljx,  
         zcdjwh = new_dept.zcdjwh,
         zcdmph = new_dept.zcdmph,
         zcdfh0 = new_dept.zcdfh0,
         zcdfjh = new_dept.zcdfjh
   WHERE xh0000 = new_dept.zzxxzj   ;

END;


----------------恢复暂住信息表中暂住地信息--------------------

drop trigger tr_removeqydz;
CREATE TRIGGER tr_removeqydz before UPDATE OF zlbz00  On qyb000 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
  UPDATE  zzxxjl  
     SET zcdssx = new_dept.ycdssx,
         zcdxz0 = new_dept.ycdxz0,
         zcdpcs = new_dept.ycdpcs,
         zcdljx = new_dept.ycdljx,  
         zcdjwh = new_dept.ycdjwh,
         zcdmph = new_dept.ycdmph,
         zcdfh0 = new_dept.ycdfh0,
         zcdfjh = new_dept.ycdfjh
   WHERE xh0000 = new_dept.zzxxzj   ;
END;


--------------修改房东信息表时修改相关信息-------------------------

drop trigger tr_markxkzczf;
CREATE TRIGGER tr_markxkzczf before UPDATE OF zlbz00  On houser 
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
   UPDATE czfxxb SET zlbz00 = 'D' WHERE fdzj00 = new_dept.xh0000 ;
   UPDATE xkz000 SET zlbz00 = 'D' WHERE fdzj00 = new_dept.xh0000 ;
end;

--------------修改房东信息表时修改相关信息-------------------------

drop trigger tr_markczf;
CREATE TRIGGER tr_markczf before UPDATE OF zlbz00  On xkz000
REFERENCING OLD AS old_dept NEW AS new_dept FOR EACH ROW
BEGIN
   UPDATE czfxxb SET zlbz00 = 'D' WHERE XKZBH0 = new_dept.CZFBH0 ;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -