Oracle 在Drop表时的Cascade Constraints

http://hi.baidu.com/rebooo/item/12b500b130022bf263388e69假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键)。则当删除A表时,如不特殊说明,则 drop table A 系统会出现如下错误警告的信息而不会允许执行。

ERROR at line 1:  ORA-02449: unique/primary keys in table referenced by foreign keys

此时必须用,drop table A cascade constraints

之后,再查询约束:

SQL> select CONSTRAINT_NAME,TABLE_NAME from dba_constraints where owner = ‘SYS‘ and TABLE_NAME = ‘B‘ ;
no rows selected

利用Drop table cascade constraints可以删除从表的constraint,从而可实现drop table A。原属于B的foreign key constraint已经跟随着被删除掉了,但是,储存在table B中的记录不会被删除,也就是说Drop table cascade constraints 时不会影响到存储于objec里的row data。

时间: 2024-08-11 18:29:45

Oracle 在Drop表时的Cascade Constraints的相关文章

Oracle设置创建表时的默认表空间

在导入/创建Oracle数据库表,有时我们会检查发现,导入/创建后表,所创建的表空间并非是我们想要的默认表空间.此时我们需要先修改用户的默认表空间,再导入的方式来解决该问题. alter user 你的用户名 default tablespace 你想默认的表空间 例如:alter user platform default tablespace platform 执行生效后,此时,再导入脚本或者创建表,就会在指定的默认空间下了

oracle数据库删除表时遇见需要解锁问题

今天在进行数据清空时,不注意把表锁住了,记录一下解锁过程. 第一步执行 select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 查出结果为 然后再执行 alter system kill session '30,4130';//'SID,SERIAL#' 就可以解锁了 提醒一下

Oracle创建表时涉及的参数解析

1.oracle pctfree和pctused详解   http://www.cnblogs.com/linjiqin/archive/2012/01/16/2323320.html http://blog.csdn.net/huang_xw/article/details/6995442 2.Oracle中用创建表时Storage中参数的含义 http://www.cnblogs.com/rootq/articles/1089383.html

ORACLE中Drop table cascade constraints

出处:https://www.cnblogs.com/xd502djj/archive/2010/11/16/1878392.html 当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行..一个极简单的例子,例如你有一个员工基本资料表,上面可能有员工编号和员工姓名等字段,另外有一个员工销售表,上面有员工编号和员工销售额两个字段,员工薪资表的员工编号字段为一个foreign key参照到员工基本资料表的

【翻译自mos文章】在alter/drop表空间时遇到错误ORA-38301,ORA-00604,purge dba_recyclebin 也不行

在alter/drop表空间时遇到错误ORA-38301,ORA-00604,purge dba_recyclebin 也不行 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 and later Information in this document applies to any platform. 症状: 当你试图drop一个empty的tablespace时,遇到与recyclebin相关的错误 SQL> drop

oracle 中删除表 drop delete truncate

oracle 中删除表 drop delete truncate 相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名(后面不跟where语句,则也删除表中所有的数据) truncate table 表名 区别 首先delete 属于DML,当不commit时时不生效的 而truncate 和 drop 则是直接生效的,不能回滚. truncate 和 delete 不删除表的结构,只是针对表中的内容删除 drop语句

Oracle中Drop,Delete,Truancate表恢复

Oracle中Drop,delete,truancate表恢复 oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法. 闪回模式得满足条件(启用闪回区和启用归档): 1.检查是否启动了flash recovery area show parameter db_recovery_file 2.检查是否启用了归档 archive log list; (一)Drop表的恢复 如果按照平时删除表的方法:(Drop table tablename;)的话.表不会立即被删除,而是存放

在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option

在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT)  ORA-00922: missing or invalid option hostdr:[/home/oracle]$sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Jul 9 12:52:11 2015 Copyright (c) 1982, 2011, Oracle. All rights reserve

oracle与mysql创建表时的区别

oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer NOT NULL, uid varchar2(80), mid varchar2(80), time date , content varchar2(300), constraint predict_data primary key (id) );#字段注释comment on table predict_data is '预测表';