
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
/
插入签要保证emp表中要插入记录的dept外键值在dept表中存在,然后直接写插入语句就可以
insert into emp(id, name, dept) values ( 'id', 'name', 'dept')
外键出问题有很多种原因
先保证 主键跟外键表的引擎是否一致
在确认 主键列跟外键列类型,长度是否一样(在看是否加了unsigned,只要有一个加了那另外一个列也要加)
在确保你的外键表中是否存在主键里不存在的记录,如果有 也无法它加外键
在修改innodb 引擎的时候 不要以为
alter table 表名 type=innodb 执行之后看到 query ok 就修改成功了。
在查看一下
show create table 表名 看引擎是否修改成功,如果修改失败 还是 MyISAM 引擎的话
打开 配置文件 myini 找到 skip-innodb 将他注释 然后重启数据库 重新修改引擎。
alter table table_name add constraint fk_column_id foreign key(column) references 主键表 (column_id);
CONSTRAINT`外键名`FOREIGNKEY(`外键的字段`)REFERENCES`外键关联的表`(`外键关联的字段`)ONDELETECASCADEONUPDATECASCADE
ONDELETE代表删除时
ONUPDATE代表更新时
CASCADE代表级联
以上就是关于MYSQL怎么创建外键并映射全部的内容,包括:MYSQL怎么创建外键并映射、Mysql 数据库中有外键,如何插入数据。、mysql外键求解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)