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