mysql 外键(foreign key)的使用,同一个table的两个外键对应一个table的主键
2017-02-10 14:27
519 查看
官方语法:
[
REFERENCES
[ON DELETE
[ON UPDATE
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT[/code]
外键的作用:如有table A和table B,table A中有username,password, table B中有username,friendname,当把table B中的username设置为外键,关联table A中的主键username,当删除或更新table A中的username时,table B也会更新或删除,并且table B中不能插入table A中没有的username
创建table的官方例子:table必须为innodb类型,也要创建索引
同一个table的两个外键对应一个table的主键的创建:
上面的fk_PerOrders可以任意定义的
删除table t_user时,要按照如下:
[CONSTRAINT [[code]symbol]] FOREIGN KEY
[
index_name] (
index_col_name, ...)
REFERENCES
tbl_name(
index_col_name,...)
[ON DELETE
reference_option]
[ON UPDATE
reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT[/code]
外键的作用:如有table A和table B,table A中有username,password, table B中有username,friendname,当把table B中的username设置为外键,关联table A中的主键username,当删除或更新table A中的username时,table B也会更新或删除,并且table B中不能插入table A中没有的username
创建table的官方例子:table必须为innodb类型,也要创建索引
CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;
同一个table的两个外键对应一个table的主键的创建:
create table if not exists t_user( username varchar(64) primary key, password varchar(64))ENGINE=InnoDB DEFAULT CHARSET=latin1; create table if not exists t_friend( username varchar(64), friend varchar(64), primary key(username, friend), INDEX (username,friend), CONSTRAINT fk_PerOrders FOREIGN KEY (username) REFERENCES t_user(username) ON DELETE CASCADE, CONSTRAINT fk_PerOrders1 FOREIGN KEY (friend) REFERENCES t_user(username) ON DELETE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=latin1;
上面的fk_PerOrders可以任意定义的
删除table t_user时,要按照如下:
SET FOREIGN_KEY_CHECKS=0; DROP TABLE t_user; DROP TABLE t_user; SET FOREIGN_KEY_CHECKS=1;
相关文章推荐
- MYSQL外键(Foreign Key)的使用
- 8、mysql外键(FOREIGN KEY)的简单使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用(二)
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- [经验]MYSQL外键(Foreign Key)的使用--修改(增加)外键方法,外键名不能有重复的
- MYSQL外键(Foreign Key)的使用
- 一个表有两个外键指向另一个表的主键:如何区分显示
- MYSQL外键(Foreign Key)的使用
- 人生第一个MYSQL外键(Foreign Key)的使用--二者类型一定要相同
- MYSQL外键(Foreign Key)的使用
- 一个表对应另一个表中多个主键的查询方法(把一个表当成两个表用)
- Oracle 查看一个表对应的主键和外键的约束关系,查看的语句:
- MYSQL外键(Foreign Key)的使用
- MYSQL外键(Foreign Key)的使用
- 一个界面中如何使用两个tableView
- MYSQL外键(Foreign Key)的使用