您的位置:首页 > 博客中心 > 数据库 >

mysql 外键(FOREIGN KEY)

时间:2022-03-14 01:42

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

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

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

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

创建外键的方式:

例子:

  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  啥也不做

热门排行

今日推荐

热门手游