扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
数据库mysql
成都创新互联专业为企业提供逊克网站建设、逊克做网站、逊克网站设计、逊克网站制作等企业网站建设、网页设计与制作、逊克企业网站模板建站服务,10多年逊克做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。
外键作用:使两张表形成关联,外键只能引用外表中的列的值!
指定主键关键字:foreignkey(列名)
引用外键关键字:references外键表名(外键列名)
事件触发限制:ondelete和onupdate,可设参数cascade(跟随外键改动),restrict(限制外表中的外键改动),setNull(设空值),setDefault(设默认值),[默认]noaction
例如:
outTable表主键id类型int
创建含有外键的表:
createtabletemp(
idint,
namechar(20),
foreignkey(id)referencesoutTable(id)ondeletecascadeonupdatecascade);
说明:把id列设为外键参照外表outTable的id列当外键的值删除本表中对应的列筛除当外键的值改变本表中对应的列值改变。
自己实践才能完全了解外键的作用关键是:事件触发限制的作用
mysql添加外键:
为已经添加好的数据表添加外键:
语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外键的名称
/*
CREATE TABLE `tb_active` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `user_id_2` (`user_id`),
CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
*/
首先要创建一个字段:alter table 表名 add 字段名 字段类型;
再添加外键约束:alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) references 关联表名(关联字段名);
注意:外键名不能重复
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流