MYSQL怎么创建外键并映射

MYSQL怎么创建外键并映射,第1张

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外键求解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10177663.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存