MySql 外键
来源:互联网 发布:项目经理考试软件app 编辑:程序博客网 时间:2024/06/03 22:55
经常忘记外键的创建方式,今天给自己做一个笔记吧!
create table t1(
id int primary key auto_increment,
name varchar(128)
)
create table t2(
id int primary key auto_increment,
name varchar(128)
)
create table ft1(
id int primary key auto_increment,
name varchar(128),
t1_id int not null,
t2_id int not null,
foreign key (t1_id) references t1(id)
)
在这里可以通过简单foreign key (t1_id) references t1(id)在创建表的时候建立外键索引
如果在创建表时忘记创建索引, 也可以通过
alter table ft1 add foreign key(t2_id) references t2(id);添加索引
索引的删除:
首先使用show create table ft1 查看表结构
ft1 | CREATE TABLE `ft1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) DEFAULT NULL,
`t1_id` int(11) NOT NULL,
`t2_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `t1_id` (`t1_id`),
KEY `t2_id` (`t2_id`),
CONSTRAINT `ft1_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`),
CONSTRAINT `ft1_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
然后使用 alter table ft1 drop foreign key `ft1_ibfk_1`;删除外键
on delete on update的联动操作有四种
no action 指定在父表有子表关联时,父表不能做更新或删除操作
cascade 表示父表在更新或者删除时,更新或者删除子表记录(谨慎)
set null 当删除父表记录是, 对应关联字段会被设置为NULL(这个操作需要谨慎, 很可能导致数据丢失)
restrict 指定在父表有子表关联时,父表不能做更新或删除操作
- MySQL - 外键
- mysql外键
- mysql 外键
- mysql 外键
- MYSQL 外键
- MySql 外键
- MYSQL外键
- mysql 外键
- mysql 外键
- MySQL外键
- mysql 外键
- mysql 外键
- mysql外键
- mysql外键
- mysql外键
- mysql外键
- mysql外键
- mysql 外键
- thinkphp怎样获取控制器名称和操作名称(不是在模板里面获取)
- *指针_函数指针、指针控制数组、链表(结构体指针)
- leetcode-329. Longest Increasing Path in a Matrix
- 基于SpringBoot的微服务与“头文件”
- tomcat 远程调试配置
- MySql 外键
- highcharts绘制饼图html页面源码
- 解决easyUI跨域问题
- Redis集群搭建与简单使用
- 昨天没做出来的一道题目,不难,但是一直出现段错误
- Fade数字切换动效
- S5PV210的uboot启动过程(知识结网)
- echarts绘制柱形图
- 面向对象基础--套路