Oracle中删除table同时删除主键怎么写? 如题:Oracle中删除table同时删除主键怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 删除TABLE就删除主键了啊,主键是依附于表的 如果LZ是drop掉table的话,那么table里面的主键也都drop掉了如果LZ是delete掉了table里的所有数据的话,那么就要手动drop主键了,语法如下:ALTER TABLE tablename DROP CONSTRAINT primarykeyname; Drop table cascade constraints使用cascade constraint在删除列的同时删除约束。例如主键约束等等。 drop table table_name cascade constraints; /*当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行.。一个极简单的例子,例如你有一个员工基本资料表,上面可能有员工编号和员工姓名等字段,另外有一个员工销售表,上面有员工编号和员工销售额两个字段,员工薪资表的员工编号字段为一个foreign key参照到员工基本资料表的员工编号:SQL> drop table t;Table dropped.SQL> drop table t1;Table dropped.SQL> create table t (id number,name varchar2(20));Table created.SQL> create table t1 (id number,sal number);Table created.SQL> alter table t add constraint t_pk primary key (id);Table altered.SQL> alter table t1 add constraint t_fk foreign key (id) references t (id);Table altered.SQL> insert into t values (1,'JACK');1 row created.SQL> insert into t values (2,'MARY');1 row created.SQL> COMMIT;Commit complete.SQL> insert into t1 values (1,1000);1 row created.SQL> insert into t1 values (2,1500);1 row created.SQL> commit;SQL> insert into t1 values (3,200);insert into t1 values (3,200)*ERROR at line 1:ORA-02291: integrity constraint (SYS.T_FK) violated - parent key not found(違反了constraint,員工基本資料表根本沒有3號這個員工,何來的銷售紀錄。)SQL> drop table t;drop table t*ERROR at line 1:ORA-02449: unique/primary keys in table referenced by foreign keys(违反了constraint,员工销售表t1有參照到table t,这个reference relation不允许你drop table t)SQL> drop table t cascade constraints;Table dropped.SQL> select * from t1;ID SAL---------- ----------1 10002 1500SQL> select CONSTRAINT_NAME,TABLE_NAME from dba_constraints where owner = 'SYS' and TABLE_NAME = 'T1'no rows selectedSQL>我们可以发现利用Drop table cascade constraints可以以刪除关联table t的constraint來达成你drop table t的目的,原來属于t1的foreign key constraint已经跟随着被删除掉了,但是,储存在table t1的资料可不会被删除,也就是说Drop table cascade constraints 是不影响到存储于objec里的row data。*/ 用现成的dataset更新数据库失败的问题 约束问题 服务器端 用username/password登录不成功 但用username/password@alias登录成功 是什么问题? 个语句用oracle怎么写 怎么判断数据里是否有除了英语和汉语之外的其他语言? 请教,一个批量修改的sql语句写法?? 一个实际问题,请大家给点意见! 新手问一个关于sql插入、修改、删除的问题 日期加减的函数 关于存储过程:向表中随机插入1000条数据 如何复制用户A下的全部东西给用户B? 问下这句SQL是什么意思?(在水一方) 来
ALTER TABLE tablename DROP CONSTRAINT primarykeyname;
使用cascade constraint在删除列的同时删除约束。例如主键约束等等。
drop table table_name cascade constraints;
/*
当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行.。一个极简单的例子,例如你有一个员工基本资料表,上面可能有员工编号和员工姓名等字段,另外有一个员工销售表,上面有员工编号和员工销售额两个字段,员工薪资表的员工编号字段为一个foreign key参照到员工基本资料表的员工编号:
SQL> drop table t;
Table dropped.
SQL> drop table t1;
Table dropped.
SQL> create table t (id number,name varchar2(20));
Table created.
SQL> create table t1 (id number,sal number);Table created.
SQL> alter table t add constraint t_pk primary key (id);
Table altered.
SQL> alter table t1 add constraint t_fk foreign key (id) references t (id);
Table altered.
SQL> insert into t values (1,'JACK');
1 row created.
SQL> insert into t values (2,'MARY');
1 row created.
SQL> COMMIT;
Commit complete.
SQL> insert into t1 values (1,1000);
1 row created.
SQL> insert into t1 values (2,1500);
1 row created.
SQL> commit;
SQL> insert into t1 values (3,200);
insert into t1 values (3,200)
*
ERROR at line 1:
ORA-02291: integrity constraint (SYS.T_FK) violated - parent key not found
(違反了constraint,員工基本資料表根本沒有3號這個員工,何來的銷售紀錄。)SQL> drop table t;
drop table t
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
(违反了constraint,员工销售表t1有參照到table t,这个reference relation不允许你drop table t)
SQL> drop table t cascade constraints;
Table dropped.
SQL> select * from t1;
ID SAL
---------- ----------
1 1000
2 1500
SQL> select CONSTRAINT_NAME,TABLE_NAME from dba_constraints where owner = 'SYS' and TABLE_NAME = 'T1'
no rows selected
SQL>
我们可以发现利用Drop table cascade constraints可以以刪除关联table t的constraint來达成你drop table t的目的,原來属于t1的foreign key constraint已经跟随着被删除掉了,但是,储存在table t1的资料可不会被删除,也就是说Drop table cascade constraints 是不影响到存储于objec里的row data。
*/