数据库中如何批量禁用和启用外键、触发器

61次阅读
没有评论

共计 3998 个字符,预计需要花费 10 分钟才能阅读完成。

这篇文章主要为大家展示了“数据库中如何批量禁用和启用外键、触发器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“数据库中如何批量禁用和启用外键、触发器”这篇文章吧。

SET SERVEROUTPUT ON SIZE 100000                                                                                                                        
BEGIN                                                                                                                                                  
for c in (select alter table ||t.owner|| . ||t.table_name || disable constraint ||t.constraint_name as v_sql
from dba_constraints t where t.constraint_type = R and owner  in (CCOD , RECORD , UCDS)
) loop
DBMS_OUTPUT.PUT_LINE(C.V_SQL);                                                                                                                          
begin                                                                                                                                                  
 EXECUTE IMMEDIATE c.v_sql;                                                                                                                            
 exception when others then                                                                                                                            
 dbms_output.put_line(sqlerrm);                                                                                                                        
 end;                                                                                                                                                  
end loop;                                                                                                                                              
for c in (select alter trigger || t.owner || . || t.trigger_name ||
        disable as v_sql
  from dba_triggers t
 where owner  in (CCOD , RECORD , UCDS)) loop                                          
 dbms_output.put_line(c.v_sql);                                                                                                                        
 begin                                                                                                                                                  
 execute immediate c.v_sql;                                                                                                                            
exception when others then                                                                                                                              
 dbms_output.put_line(sqlerrm);                                                                                                                        
 end;                                                                                                                                                  
end loop;                                                                                                                                              
end;                                                                                                                                                    
/                                                                                                                                                      
                                                                                                                                                       
– 启用脚本                                                                                                                                              
SET SERVEROUTPUT ON SIZE 100000                                                                                                                        
BEGIN                                                                                                                                                  
for c in (select alter table ||t.owner|| . ||t.table_name || enable constraint ||t.constraint_name as v_sql
from dba_constraints t where t.constraint_type = R and owner  in (CCOD , RECORD , UCDS)) loop 
DBMS_OUTPUT.PUT_LINE(C.V_SQL);                                                                                                                          
begin                                                                                                                                                  
 EXECUTE IMMEDIATE c.v_sql;                                                                                                                            
 exception when others then                                                                                                                            
 dbms_output.put_line(sqlerrm);                                                                                                                        
 end;                                                                                                                                                  
end loop;                                                                                                                                              
for c in (select alter trigger || t.owner || . || t.trigger_name ||
        enable as v_sql
  from dba_triggers t
 where owner  in (CCOD , RECORD , UCDS)) loop                                          
 dbms_output.put_line(c.v_sql);                                                                                                                        
 begin                                                                                                                                                  
 execute immediate c.v_sql;                                                                                                                            
exception when others then                                                                                                                              
 dbms_output.put_line(sqlerrm);                                                                                                                        
 end;                                                                                                                                                  
end loop;                                                                                                                                              
end;                                                                                                                                                    
/                                                                                                                                                      

以上是“数据库中如何批量禁用和启用外键、触发器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计3998字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)