外键的作用
保持数据的一致性、完整性
比如:表1和表2通过学号字段关联。设置外键后,你插入表2学号字段的值必须要求在表1的学号字段能找到。 同时,如果你要删除表1的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。这就是所谓的保持数据的一致性和完整性。
外键的使用规则
1,所有tables必须是InnoDB型 ,它们不能是临时表。
2,在引用表中,必须有一个索引,外键列以同样的顺序被列在其中作为之一列。这样一个索引如果不存在,它必须在引用表里被自动创建。
3,在引用表中,必须有一个索引,被引用的列以同样的顺序被列在其中作为之一列。
4,不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中, 这是因为对这些列的索引必须总是包含一个前缀长度。
5,如果CONSTRAINTsymbol 被给出,它在数据库里必须是唯一的。如果它没有被给出,InnoDB自动创建这个名字。
外键增删查
增加外键:
语法:alter table user_info add constraint FK_ID foreign key(u_id) REFERENCES user(id);
其中user为用户表,user_info为用户详情表。
删除外键:
alter table user_info drop foreign key FK_ID;
查看外键:
show create table user_info;