1. 创建表时创建外键
CREATE TABLE T1(employee_idNUMBER(4), last_name VARCHAR2(10), job_idVARCHAR2(9), salaryNUMBER(7,2), department_id CONSTRAINT fk_deptno REFERENCES T2(department_id) );
其中T2叫父表,T1叫子表。
注意事项:
父子表中相应列的数据类型必须一致,列名可以不同;父表字段必须是主键或者唯一键;子表中外键的值必须在父表中,否则会报错:未找到父项关键字。
2. 修改时创建外键约束
有三种形式的外键约束:
2.1 普通外键约束
如果存在子表引用父表主键,则无法删除父表记录
ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2 (ID);
2.2 级联外键约束
可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除
ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2(ID) ON DELETE CASCADE;
2.3 置空外键约束
可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值
ALTER TABLE T1 ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T2(ID) ON DELETE SET NULL;
3. 启用/禁用外键
DISABLE
(禁用) |ENABLE
(启用)CONSTRAINT constraint_name
4. 删除外键约束
drop constraint constraint_name;
5. 其他
创建主键:
ALTER TABLE T1 ADD CONSTRAINT PK_T1_ID PRIMARY KEY(ID);
如果觉得《Oracle创建外键约束》对你有帮助,请点赞、收藏,并留下你的观点哦!