mysql外键的建立与类型

之前看过一本“mysql必知必会”的入门书籍,我有选择性的读过两遍,感觉比较不错,例子很多并且简单易懂,对于mysql入门来说挺适合的,不过缺点就是没有重要的索引部分,在此先推荐一下。 

进入正题,如果想在两个表中间里连结关系(即外键),则需要先选定一个父表、一个子表,以及确定这两个表中的关联项,这样建立连结后当父表的连结项变更时,子表的相应项也会随着变更(也可设置成被连结后的值无法变更,下面会详细说)。

例如:

我建立了两个表,父表是productinfo,子表是product,表结构如下图

父表productinfo,为了简便只设置了一个值,就是将被关联的项,注意关联项与被关联项都一定要是key。


子表product,关联项和被关联项的各类参数(名称、类型、长度)都应该是一样的。


在navicat中关联的方式:


sql语句形式为:ALTER TABLE `product` ADD CONSTRAINT `proid` FOREIGN KEY (`proid`) REFERENCES `productinfo` (`proid`) ON DELETE CASCADE ON UPDATE CASCADE;


其中:四中关联方式分别为

cascade

父表上有修改时,子表同步修改

restrict

如果进行了关联,那么不允许父表相应项进行修改

no action

如果进行了关联,那么不允许父表相应项进行修改

set null

若父表上的项修改后,子表上的相应项设置为null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值