删除表所有的约束(系统默认名约束删除)(存储过程)
来源:互联网 发布:剪辑拼接音乐软件 编辑:程序博客网 时间:2024/06/03 21:47
原文地址:http://akdora.wordpress.com/2007/01/12/to-remove-all-constraints/
译文:2010-08-10
我在编程的时候认识到,我创建了错误的约束,我发现了两个方法来弥补我的错误
1-删除表,并且重新创建表,我想这不是一个我需要的解决方式
drop table table_name cascade constraints;
2-如果你的数据库中有很多的约束,你不可能一个一个去删除,约束是那么的长
alter table table_name drop constraint constraint_name;
所以,你可以使用以下存储过程
create or replace procedure disable_fk_constraint is
cursor fke_cur is
select table_name, constraint_name
from user_constraints
where constraint_name like '<<some criteria to specify your constraints>>';
exstr varchar2(4000);
begin
for fke_rec in fke_cur
loop
exstr := 'alter table ' || fke_rec.table_name ||
' drop constraint ' ||
fke_rec.constraint_name;
begin
execute immediate exstr;
exception
when others then
dbms_output.put_line('dynamic sql failure: ' || sqlerrm);
dbms_output.put_line('on statement: ' || exstr); end;
end loop;
end disable_fk_constraint;
/
你也可以在存储过程中使用以下的查询语句
select table_name, constraint_name
from user_constraints
where constraint_name not like 'sys%' and table_name = 'table_name';
同时,有许多的约束名是以SYS_CXXXXX开头的,就像你在表中指定的非空约束一样
create table ht_projects (
project_id integer not null,
project_name varchar2(100) not null,
start_date date not null,
target_end_date date not null,
actual_end_date date
);
如果你想要通过上面的存储过程删除它们,仅仅更改查询语句就可以了
你可以通过以下查询语句查看到所有的约束:
select table_name,constraint_name from user_constraints where table_name = 'table_name';
- 删除表所有的约束(系统默认名约束删除)(存储过程)
- SQLserver 删除数据所有表和存储过程和约束
- SQLserver 删除数据所有表和存储过程和约束
- 对系统默认的约束名和索引名进行重命名的存储过程示例
- 删除所有约束、表、视图
- SQL存储过程之删除指定表中指定字段所有约束
- 删除默认约束存储过程及增加、修改、删除字段语法
- 删除模糊表名的所有表,存储过程
- mysql未知约束名删除约束
- SQL删除某一列的默认约束
- sql查询表默认约束 删除和添加约束
- sql删除外键约束,删除表,删除存储过程代码
- Oracle 删除一个用户下的所有表、触发器、约束
- 删除带约束的表
- MySQL删除所有表的外键约束、禁用外键约束
- 删除未知的约束
- 删除约束
- 删除数据库所有表数据(保留表结构和约束)
- Debugging failed because integrated Windows authentication is not enabled
- 设置 和 显示 当前进程的signal mask
- J2EE架构的数据表示
- shell脚本调试技术
- C++同步锁管理的一种方法
- 删除表所有的约束(系统默认名约束删除)(存储过程)
- 环境变量
- 技术人员职业生涯的红色警报
- 世界是并行的:并行计算的机遇与挑战
- XHTML-CSS编写规范(续)
- JSP 分页框架 Pager Tag Library使用
- 惠普研究员称已解决计算机科学第一难题
- 俄数学天才破解庞加莱猜想拒领百万奖金
- XHTML-CSS编写规范