--外键,级联
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;