`

drop table cascade

阅读更多

建立数据库表之前,第一步,进行了drop table cascade constant 操作,不明白是什么意思,翻看书的前面也没有找到,于是查了一下,以下为查到的原因。
当你要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。

 

分享到:
评论

相关推荐

    ORACLE经典常用语句

    DROP TABLE CASCADE CONSTRAINTS; ``` ### 九、索引管理 1. **基于函数的索引**: ```sql CREATE INDEX summit.item_quantity ON summit.item (quantity - quantity_shipped); ``` 2. **B-树索引**: ```sql ...

    oracle笔记二--plsql 编程.txt

    DROP TABLE CASCADE CONSTRAINTS; ``` ### 二、索引管理 **1. 基于函数的索引** 基于函数的索引可以提高某些查询的效率,比如使用 `SUM`, `AVG` 等聚合函数。 ```sql CREATE INDEX summit.item_quantity ON summit...

    oracle优化笔记

    drop table cascade constraints; ``` #### Oracle工具使用 除了以上提到的技术点,还有一些实用的Oracle工具可以帮助进行性能监控、问题排查等: 1. **AWR(Automatic Workload Repository)**:用于收集和...

    利用 Oracle 系统触发器防止误删除表操作

    例如,用户原本打算删除名为`A`的表(`DROP TABLE A CASCADE CONSTRAINTS;`),但由于输入错误,变成了删除`B`表(`DROP TABLE B CASCADE CONSTRAINTS;`),这种误操作可能会给业务带来严重损失。 #### 解决方案:使用...

    Oracle----相关常用命令

    - **`drop table cascade constraints`**:删除表及其依赖的所有约束(如外键)。 - **`on delete cascade`**:当主表中的记录被删除时,自动删除从表中对应的记录。 - **`desc 表名;`**:描述表结构。 - 这些命令...

    SQL Server中的CASCADE与示例

    在SQL Server数据库管理系统中,`CASCADE` 是一个重要的约束类型,它主要用于定义外键约束时的行为。本篇文章将深入探讨 `CASCADE` 的含义、作用以及如何在实际操作中使用它,同时通过具体示例帮助理解其工作原理。 ...

    Oracle常用的和表(Table)相关的命令

    sql> alter table table_name drop column comments cascade constraints checkpoint 1000; sql> alter table table_name drop columns continue; ``` **解析**: - `drop column`: 删除指定列。 - `cascade ...

    oracle删除主键查看主键约束及创建联合主键

    ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --设置被设置为主键的列为无效 DROP INDEX INDEX_NAME; --删除主键索引 2,查看主键约束 ...

    Oracle Database 10g删除表的程序.rar_oracle 10g

    DROP TABLE 表名 CASCADE CONSTRAINTS; ``` 这条语句的基本结构是`DROP TABLE`后跟表的名称。如果直接执行,将删除表及其数据,但表的约束条件(如外键)仍然存在,可能导致其他关联表出现问题。因此,通常会加上`...

    【Transact-SQL】DROP SCHEMA TEST CASCADE :关键字 ‘CASCADE’ 附近有语法错误

    SCHEMA在SQL server中翻译为“架构”,在课本上为“模式”。 ...CREATE TABLE TAB1 ( COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) ); 【注】使用上面的

    oracle笔记 (创建、更改、删除[table,constraint,index,view,sequence])

    DROP TABLE employees CASCADE CONSTRAINTS; ``` 8. `alter_table_drop_table.txt`文件可能包含关于如何删除表或其组件的更具体操作,如删除约束、索引或列。 总结,Oracle数据库管理系统提供了丰富的功能来创建、...

    DBA常用SQL

    drop table table name cascade constraints; 删除父表的时候把子表也删除(外健) with check option 该列有访问且值等(即条件一致) novalidate enable 约束">第一章:写简单的sql语句 SQL> alter user ...

    第22讲 SQL语言高级00--创建插入删除和更新数据.PPT

    接着,删除表使用`DROP TABLE`语句,如`DROP TABLE Employees;`,这将永久性地移除表及其所有数据。 创建主键使用`ALTER TABLE`语句加上`ADD CONSTRAINT PRIMARY KEY`,如: ```sql ALTER TABLE Employees ADD ...

    Alter-Table.rar_Table

    ALTER TABLE 表名 DROP COLUMN 列名; ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型; ``` 在VB6中,你可以通过DAO(Data Access Objects)或者ADO(ActiveX Data Objects)来执行相应的操作,例如: ```vb Dim ...

    Oracle9i模式对象.ppt

    DROP TABLE test CASCADE CONSTRAINTS; ``` 在删除表时,需要先删除表的约束,然后才能删除表。 Oracle 9i 模式对象提供了多种类型的表、索引、视图、存储过程、函数、触发器等数据库对象,用于存储和管理数据。

    2022年SQL数据更新删除和修改数据.pptx

    DROP TABLE 命令是 DDL 语句,执行时不会将操作放入回滚段中,操作立即生效,不触发触发器。 DROP TABLE <表名> 六、小结 在数据库管理系统中,数据更新、删除和修改是最基本的操作之一。这些操作需要遵守数据库...

    oracle里常用命令之三

    sql> DROP TABLE table_name [CASCADE CONSTRAINTS]; ``` 11. 删除列 `ALTER TABLE`命令可用于删除列,`CASCADE CONSTRAINTS`处理依赖关系: ```sql> sql> ALTER TABLE table_name DROP COLUMN comments CASCADE ...

    oracle 在删除表,表空间,用户时 如何释放磁盘空间.pdf

    - **DROP TABLE**:当你执行`DROP TABLE`语句时,表会移动到回收站(USER_RECYCLEBIN),而不是立即删除。如果你想永久删除表及其数据,应该使用`DROP TABLE PURGE`。这会将表从回收站中移除,无法恢复。 - **...

    oracle数据库安装

    对数据库的表进行修改有如下几点 1. 列的添加,修改和删除 ...Alter table table_name drop [column column_name]|[(column1_name,column2_name,…)] [cascade constraints](多列的约束组成,用到这段语句)

    数据库脚本

    数据库脚本/图书分类基本信息表 DROP TABLE bookcat CASCADE CONSTRAINTS; CREATE TABLE bookcat( id NUMBER PRIMARY KEY, catname VARCHAR2 (40) NOT NULL );

Global site tag (gtag.js) - Google Analytics