码迷,mamicode.com
首页 > 数据库 > 详细

mysql 外键(FOREIGN KEY)

时间:2014-10-29 16:32:20      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   使用   for   sp   数据   div   on   

互为外键的两个字段必须都是主键

两个表必须是InnoDB表,MyISAM表暂时不支持外键

外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如inttinyint可以,而intchar则不可以;

外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

创建外键的方式:

例子:

  1、alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id);

  2、

    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`) on delete cascade
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
关键字     含义
 CASCADE    删除包含与已删除键值有参照关系的所有记录
 SET NULL   修改包含与已删除键值有参照关系的所有记录,使用NULL值替换(只能用于已标记为NOT NULL的字段)
 RESTRICT   拒绝删除要求,直到使用删除键值的辅助表被手工删除,并且没有参照时(这是默认设置,也是最安全的设置)
 NO ACTION  啥也不做

mysql 外键(FOREIGN KEY)

标签:style   io   ar   使用   for   sp   数据   div   on   

原文地址:http://www.cnblogs.com/LoveJulin/p/4059742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!