日期:2014-05-16  浏览次数:20376 次

同时删除oracle中有主外键关系的两张表

http://blog.sina.com.cn/s/blog_54eeb5d90100nqpb.html

同时删除oracle中有主外键关系的两张表
----先删除约束
select constraint_name??from user_constraints WHERE table_name ='表名';--得到约束名字
----然后删除表
alter table table_name drop constraint 约束名(cascade);
----使约束暂时无效
alter table table_name disable/enable constraint constraint_name;
无效以后也可以删除表

或者先删除带外键的表,然后再删除主键表

或者只要删除外键约束,就可以删除主键表,不会影响到外键表的数据

select 'alter table?'||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R';


主键约束添加删除
1、创建表的同时创建主键约束
一、无命名 create table accounts ( accounts_number number primary key, accounts_balance number ); 二、有命名 create table accounts ( accounts_number number primary key, accounts_balance number, constraint yy primary key(accounts_number) );
2、删除表中已有的主键约束
一、无命名 SELECT * FROM USER_CONS_COLUMNS WHERE TALBE_NAME='accounts';
找出主键名 ALTER TABLE ACCOUNTS?DROP?CONSTRAINT SYS_C003063;
二、有命名 ALTER TABLE ACCOUNTS?DROP?CONTRAINT yy;
3、向表中添加主键约束 ALTER TABLE ACCOUNTS ADD CONSTRAINT PK_ACCOUNTS PRIMARY KEY(ACCOUNTS_NUMBER);