实用技术 - 主外键
三大特点
- 主键本身是一种索引;
- 可以保证表中主键所在列的唯一性;
- 可以有效地限制外键依赖的表的记录的完整性。
外键上的索引与性能
select A.ID,A.NAME,B.NAME
from T_P A,T_C B
where A.ID=B.FID and A.ID=880;
外键建索引后效率会明显提高
外键上的索引与锁的避免
外键索引对于表连接查询在性能上有很大提升,实际上,在外键上建索引还能有效避免锁的竞争
主外约束简单证明
外键所在表的外键列取值必须在主表中的主键列有记录。
级联删除操作很方便
其实操作的方法很简单,就是在原先增加外键的基础上增加ON DELETE CASCADE 的关键字即可。
alter table T_C drop constraint FK_T_C;
alter table T_C add constraint FK_T_C
foreign key (FID) references T_P (ID)
on delete cascade;
这个方法虽然简单,不过却要慎用,避免误删数据
改造为主键简便方法
建主键的动作其实就是建了一个唯一性索引,再增加一个约束。
create index idx_t_id on t(id);
alter table t add constraint t_id_pk primary key(ID);