首页 > 数据库 >ORACLE中Drop table cascade constraints

ORACLE中Drop table cascade constraints

时间:2023-06-08 21:06:20浏览次数:41  
标签:Drop constraint drop t1 Table SQL ORACLE table


当你要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 wner = '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。

标签:Drop,constraint,drop,t1,Table,SQL,ORACLE,table
From: https://blog.51cto.com/u_16065168/6443247

相关文章

  • Oracle聚合函数RANK和dense_rank的使用
    聚合函数RANK和dense_rank主要的功能是计算一组数值中的排序值。在9i版本之前,只有分析功能(analytic),即从一个查询结果中计算每一行的排序值,是基于order_by_clause子句中的value_exprs指定字段的。其语法为:RANK()OVER([query_partition_clause]ord......
  • el-table关于文件上传
    问题1.fileList无法获取到传入的文件名在elementui中不支持,自动更新fileList的值,需要手动添加 问题2:上传文件后,通过on-change无法获取到url使用照片墙的方式可以获取到,添加list-type="picture-card" ......
  • 【C#】JSON转DataTable存入数据库
    由于JSON直接转DataTable可能会存在类型丢失如下:采用读取数据库表字段类型构建DataTable///<summary>///JSON转DataTale存入数据库///</summary>///<paramname="json"></param>publicstaticvoidJsonDataTableTest(stringjson){stringsql=strin......
  • 重新设置a-table空状态样式
    <a-config-provider><template#renderEmpty><imgsrc="../../../assets/images/no-data.png"alt=""width="120px"height="120px"/>......
  • 【转载】configure: error: C compiler cannot create executables 错误解析
    1原文地址configure:error:Ccompilercannotcreateexecutables错误解析-to_be_better_wen-https://blog.csdn.net/to_be_better_wen/article/details/1306507742前言在编译开源软件的时候,有时会遇到"configure:error:Ccompilercannotcreateexecutables"的错......
  • Oracle最高可用性架构(MAA)|白银级(SILVER)
    提到数据库高可用,Oracle作为先行者,其体系全面,值得参考和学习1、什么是MAA参考之前的文章: Oracle最高可用性架构(MAA)|青铜级(BRONZE)https://www.cnblogs.com/mingfan/p/16804556.html2、白银级(SILVER)MAA白银级层建立在青铜级基础上,它引入了集群技术以提高意外中断和计划维......
  • 生产环境windows服务器Oracle11gR2安装配置
    1.生产环境Windows主机环境规划  os:windows2008  ip:192.168.1.51  主机:ippuxwebdb  数据库:oracle11.2.0.4+补丁  数据库名:fgwebdb  主机  物理内存:内存16G/32G,CPU:i3/i5/i7硬盘空间500G  网络要求:有线  2.Windows服务器系统安装  1.VMware虚......
  • Oracle 19c dbca静默安装建库
     Oracle19cdbca静默安装建库 目前单节点无RAC环境,模板如下(RAC差不多,少部分不同)。1dbca-silent-createDatabase\2-responseFileNO_VALUE\3-templateName$ORACLE_HOME/assistants/dbca/templates/New_Database.dbt\4-databaseTypeMULTIPURPOSE\5-da......
  • Linq关联两个DataTable合并为一个DataTable
    DataSetds;DataTabledt1=ds.Tables[0];DataTabledt2=ds.Tables[1];//关联varres=frommindt1.AsEnumerable()fromsindt2.AsEnumerable()wherem.Field&l......
  • docker iptables
    -name:获取是否已经安装dockershell:'systemctlis-activedocker||echo"NoFound"'register:docker_svc#18.09.x版本二进制名字有变化,需要做判断-name:获取docker版本信息shell:"{{base_dir}}/bin/dockerd--version|cut-d''-f3"regist......