赞
踩
什么是外键:
如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表)
外键的作用:
为了一张表记录的数据不要太过冗余。
保持数据的一致性、完整性
我们很多客户库中,许多表都没有外键索引的存在,所以一般一直选择禁用外键(DISABLED).
当然只有在外键不需要更新或删除时才不需要建立索引,如果需要这些条件,插入数据时会锁住整张表,而不是特定的行,这样高并发时就有性能问题。
禁用外键脚本 BEGIN for c in (select 'alter table "' || t.owner || '".' || t.table_name || ' disable constraint ' || t.constraint_name as v_sql from dba_constraints t where t.constraint_type = 'R' and owner in (select a.USERNAME from v$session a where a.SID in (select sid from v$mystat where rownum = 1)) ) loop DBMS_OUTPUT.PUT_LINE(C.V_SQL); begin EXECUTE IMMEDIATE c.v_sql; exception when others then dbms_output.put_line(sqlerrm); end; end loop; end; /
禁用完成后查看
select * from user_constraints where STATUS='DISABLED';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。