Oracle sql, 外键,级联

--外键,级联 
CREATE TABLE departments( 
  department_id NUMBER(4) CONSTRAINT department_id_id_u  UNIQUE, 
  department_name VARCHAR2(20) 
); 
DESC departments; 
INSERT INTO departments(department_id,department_name) 
VALUES(1,'组织部'); 
INSERT INTO departments(department_id,department_name) 
VALUES(2,'财务部'); 
SELECT * FROM departments;

CREATE TABLE dept_20( 
  employee_id NUMBER(4) PRIMARY KEY, 
  last_name VARCHAR2(10), 
  manager_id NUMBER(4) CONSTRAINT fk_mgr 
             REFERENCEs employees ON DELETE SET NULL,--要求emplyees这个表有主键 
  department_id NUMBER(2) CONSTRAINT fk_deptno 
                REFERENCES departments(department_id) 
                ON DELETE CASCADE 
); 
SELECT * FROM dept_20; 
INSERT INTO dept_20(EMPLOYEE_ID,LAST_NAME,MANAGER_ID,department_id) 
VALUES(1,'SMITH',1,2);

DROP TABLE dept_20;

CREATE TABLE employees( 
  mrg_id NUMBER(4) PRIMARY KEY, 
  mrg_name VARCHAR2(20) 
); 
INSERT INTO employees(MRG_ID,MRG_NAME) 
VALUES(1,'M1'); 
SELECT * FROM employees; 
DROP TABLE employees; 
--级联删除。dept_20表中departemnt_id为2的也会跟着被删除。 
DELETE FROM departments WHERE DEPARTMENT_ID=2; 
--级联设置null。dept_20表中的manager_id会被设置为NULL值。 
DELETE FROM employees WHERE mrg_id=1;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值