同事问我 drop table dept cascade constraints; 这个关键字 cascade constraints
的作用.
应该是在父子表中存在外键关联的时候 drop 父表的时候级联drop 子表的外键.
SQL>
SQL> create table dept (dept_id number , dept_name
varchar2(20));
Table created
SQL> alter table dept add
CONSTRAINTS pk_dept primary key (dept_id);
Table altered
SQL>
create table emp (emp_id number , dept_id number , emp_name
varchar2(20));
Table created
SQL> alter table emp add
constraints pk_emp primary key (emp_id);
Table altered
SQL>
alter table emp add constraints fk_emp foreign key (dept_id ) references
dept(dept_id);
Table altered
SQL> insert into dept (dept_id,dept_name) values (1,'dept1');
1
row inserted
SQL> insert into dept (dept_id,dept_name) values
(2,'dept2');
1 row inserted
SQL> commit;
Commit
complete
SQL> insert into emp(emp_id,dept_id,emp_name)
values(1,1,'emp1');
1 row inserted
SQL> insert into
emp(emp_id,dept_id,emp_name) values(2,2,'emp1');
1 row
inserted
SQL> commit;
Commit
complete
SQL>
SQL> drop table dept;
drop table
dept
ORA-02449: 表中的唯一/主键被外部关键字引用
SQL>
SQL> drop table
dept cascade constraints;
Table dropped
SQL> SELECT
constraint_name FROM
User_Constraints;
CONSTRAINT_NAME
------------------------------
PK_EMP
SQL>
分享到:
相关推荐
- 删除表(DROP TABLE):删除基表,如 `DROP TABLE DEPT CASCADE CONSTRAINTS;` 1. SQL*PLUS 命令: - EXIT 或 QUIT:退出 SQL*PLUS。 - DESC 或 DESCRIBE:描述表结构,如 `DESC EMP;` - SPOOL:将输出重定向...
7. `DROP TABLE`:删除表,如`DROP TABLE dept CASCADE CONSTRAINTS;` 四、SQLPLUS脚本执行 1. `.SQL`文件:编写SQL语句和PL/SQL块,通过`@文件名.sql`来执行。 2. `SPOOL`命令:将输出重定向到文件,如`SPOOL ...
oracle建表 -@/home/soft01/employee....drop table dept_guai cascade constraints; create table dept_guai( deptno number(2) constraint dept_guai_no_pk primary key, dname char(20), location char(20) );
8. 删除表:`DROP TABLE 表名 CASCADE CONSTRAINTS`,如`DROP TABLE employees CASCADE CONSTRAINTS`,这会连同所有依赖于该表的对象一起删除。 四、索引管理 9. 创建索引:`CREATE INDEX 索引名 ON 表名 (列名)`...
DROP TABLE table_name CASCADE CONSTRAINTS; ``` **示例**: 删除`employees`表及其所有约束: ```sql DROP TABLE employees CASCADE CONSTRAINTS; ``` #### 八、索引管理 索引是提高查询效率的关键技术之一,在...
- `DROP TABLE`: 删除表,如`DROP TABLE departments CASCADE CONSTRAINTS;` 3. **PL/SQL块** PL/SQL是Oracle的编程语言,结合了SQL和过程语言的特性。在SQL*Plus中,可以编写并执行存储过程、函数、触发器等。 ...
DROP TABLE s_dept CASCADE CONSTRAINTS; CREATE TABLE s_dept (id NUMBER(7) CONSTRAINT s_dept_id_nn NOT NULL, name VARCHAR2(25) CONSTRAINT s_dept_name_nn NOT NULL, region_id NUMBER(7), CONSTRAINT s_...
Drop table 表名 cascade constraints; 8:索引管理 <1>.creating function-based indexes sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped); <2>.create a B-tree ...
alter table EMP add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade; alter table POS add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete ...
select last_name,name from s_emp,s_dept where s_emp.dept_id=s_dept.id;--列表每人所在部门 SELECT * FROM Products; --检索所有列。 数据太多时,最好别使用上句,会使DBMS降低检索和应用程序的性能。(*...
DROP TABLE 表名 CASCADE CONSTRAINTS; ``` ##### TRUNCATE 语句 **功能:** 清空表中的所有记录,但保留表结构。 ```sql TRUNCATE TABLE 表名; ``` #### 查询语句(SELECT) **功能:** 从表中检索数据。 1. ...
ALTER TABLE TABLENAME DROP CONSTRAINT CONSTRAINT_NAME CASCADE; ``` 这里的`CONSTRAINT_NAME`是主键约束的名称,`CASCADE`选项会同时删除依赖的索引和其他对象。 另外,如果你想让主键列变为无效状态,但不删除...
drop cluster my_clu including tables cascade constraints;-- 同时删除外键约束 ``` 清空簇数据: ```sql truncate cluster my_clu; ``` 除了常规的簇,还有一种散列聚簇表,它使用散列函数而非索引来定位行。创建...
而且不能删除当前用户,如果删除的用户有数据对象,那么必须加上关键字cascade。 用法:drop user 用户名 [cascade] 四、 用户权限与角色 1. 权限 Oracle中权限主要分为两种,系统权限和实体权限。 系统权限:...