mysql建立外键约束
来源:互联网 发布:mui框架 js自动加载 编辑:程序博客网 时间:2024/06/05 05:55
MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
例如:
1、建立s_user表
create table s_user(
u_id int auto_increment primary key,
u_name varchar(15),
u_pwd varchar(15),
u_truename varchar(20),
u_role varchar(6),
u_email varchar(30)
)
2、
插入几条数据
insert into s_user values
(1,"wangc","aaaaaa","wangchao","buyer","wang@163.com"),
(2,"huangfp","bbbbbb","huangfp","seller","huang@126.com"),
(3,"zhang3","cccccc","zhangsan","buyer","zhang@163.com"),
(4,"li4","dddddd","lisi","seller","li@1256.com")
3、
建立s_orderform表
create table s_orderform(
o_id int auto_increment primary key,
o_buyer_id int,
o_seller_id int,
o_totalprices double,
o_state varchar(50),
o_information varchar(200),
foreign key(o_buyer_id) references s_user(u_id), #外链到s_user表的u_id字段
foreign key(o_seller_id) references s_user(u_id) #外链到s_user表的u_id字段
)
Alter table[] drop forienkey[标示符]
alter table[] add foreign key(o_buyer_id) references s_user(u_id) on deleteset null
on update restrict
再添加
建立外键后,有什么影响呢?
1>如果所指向的s_user 的u_id不存在时, 在insert从表时是不成功的
2>主表增加记录是不受从表影响
3>当主表对应的实体数据发生改变时,从表该怎么处理?
主表删除 on delete
casecade 关联操作,主表删除或者删除时,那么从表也会执行相应的操作(主表删除,从表也删出,由于数据不可逆,慎用)
set null 设置为null,表示从表不指向任何主表记录(经常用,数据也安全)
restrict ,拒绝主表的相关操作
主表更新 on update
更新的时候,只有主表的主键发生改变的时候,从表才有影响
实际工作中:一般很少建立实际外键,是名义上的外键关联,并不进行逻辑的外键关联,
一般级联操作都是执行多条sql操作,再此看来,外键有点有名无实,一般数据管理员会使用
- mysql建立外键约束
- friebird建立外键约束
- MySQL约束:非空约束、主键约束、唯一约束、默认约束、外键约束
- MYSQL外键约束
- MySQL .外键约束
- Mysql外键约束
- Mysql 外键约束
- mysql 外键约束
- MySQL外键约束
- MySQL外键约束
- MySQL 外键约束
- MySQL外键约束
- MySQL外键约束
- MySQL外键约束
- mysql 外键约束
- mysql外键约束
- Mysql外键约束
- MySQL外键约束
- 【那些遇到的坑】—hadoop完全分布式集群搭建启动一直处于starting namenode
- Password authentication failed, Please verify that the username and password are correct
- 源码分析-java-ArrayList-基本方法及实现
- HDU 1237 简单计算器 (栈)
- jsp数据库基础之---jsp与MySQL数据库的连接
- mysql建立外键约束
- IOS设备的三种分辨率
- Block 浅析
- 鼠标移上边框动画练习
- 【QT小贴士】删除QListWidget中的某项
- jQuery $(document).ready()和JavaScript onload事件
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常的处理方法
- spring错误汇总
- 关于小区换物业的记录