Oracle主键外键 约束的 创建,添加和删除
(2011-01-06 18:17:33)
同时删除
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;
无效以后也可以删除表
或者只要删除外键约束,就可以删除主键表,不会影响到外键表的数据
主键约束添加、删除
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);
select constraint_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_constraintswhere 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;
二、有命名
3、向表中添加 主键约束
ALTER TABLE ACCOUNTS ADD CONSTRAINT PK_ACCOUNTS PRIMARY KEY(ACCOUNTS_NUMBER);