建立数据库表之前,第一步,进行了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。
相关推荐
ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --设置被设置为主键的列为无效 DROP INDEX INDEX_NAME; --删除主键索引 2,查看主键约束 ...
SCHEMA在SQL server中翻译为“架构”,在课本上为“模式”。 ...CREATE TABLE TAB1 ( COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) ); 【注】使用上面的
drop table table name cascade constraints; 删除父表的时候把子表也删除(外健) with check option 该列有访问且值等(即条件一致) novalidate enable 约束">第一章:写简单的sql语句 SQL> alter user ...
对数据库的表进行修改有如下几点 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 );
Oracle 数据库 对数据库的表进行修改有如下几点 1. 列的添加,修改和...Alter table table_name drop [column column_name]|[(column1_name,column2_name,…)] [cascade constraints](多列的约束组成,用到这段语句)
DROP TABLE IF EXISTS `admins`; CREATE TABLE `admins` ( `管理员帐号` char(30) NOT NULL DEFAULT '', `用户名` char(30) NOT NULL DEFAULT '', `密码` char(8) DEFAULT NULL, PRIMARY KEY (`管理员帐号`,`...
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) );
1. 创建表 CREATE TABLE 学生信息 ( 学号varchar(14) IDENTITY(1,1) PRIMARY KEY, 姓名varchar(8) UNIQUE NOT NULL, 班级编号varchar(14) REFERENCES '班级信息', ...DROP COLUMN 家庭住址CASCADE
1. 创建表 CREATE TABLE 学生信息 ( 学号varchar(14) IDENTITY(1,1) PRIMARY KEY, 姓名varchar(8) UNIQUE NOT NULL, 班级编号varchar(14) REFERENCES '班级信息', ...DROP COLUMN 家庭住址CASCADE
1. 创建表 CREATE TABLE 学生信息 ( 学号varchar(14) IDENTITY(1,1) PRIMARY KEY, 姓名varchar(8) UNIQUE NOT NULL, 班级编号varchar(14) REFERENCES '班级信息', ...DROP COLUMN 家庭住址CASCADE
添加级联操作 语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ; 2. 分类: 1. 级联更新:ON UPDATE CASCADE 2...
DROP SCHEMA IF EXISTS spring CASCADE; CREATE SCHEMA spring; DROP TABLE IF EXISTS spring.categories; CREATE TABLE spring.categories ( name character varying(45) NOT NULL, description text, ...
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 ...
drop user cw cascade; drop user nc66 cascade; 创建表空间(SQLPLUS方法,PLSQL不适用 ) --定义表空间 define newtablespace=yonyou2015; --定义表空间文件路径 此处请务必保证正确 文件名可以自行修改 define ...
1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> 分号结束 如: select id from s_emp; select last_name,name from s_emp,s_dept where s_emp.dept_id=s_dept.id;--列表每人所在部门 SELECT...
2、alter table 表名 drop foreign key 外键名; 5、已有表 alter table 表名 add constraint 外键名 foreign key(字段) references 主表(字段) on delete ... on update ... 6、注意 在已有表中添加外键时,...
[ DROP [ COLUMN ] [CASCADE| RESTRICT] ] [ DROP CONSTRAINT[ RESTRICT | CASCADE ] ] [ALTER COLUMN ] ; 其中 是要修改的基本表 ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件 例:alter ...
删除索引:alter table 表名 drop primary key(列名)和alter table 表名 modify 列名 int,drop primary key 4、组合索引:将多个列组合成一个索引 创建组合索引:create iindex 索引名 on 表名(列1,列2) 在使用...
创建数据库和数据表 USE [MASTER] GO IF EXISTS(SELECT * FROM SYSDATABASES WHERE NAME='BOOKSTORE') DROP DATABASE BOOKDTORE; GO CREATE DATABASE BOOKSTORE ON PRIMARY ( NAME='BOOKSTORE_DATA', FILENAME='D:...