MySQL表rename引起外键问题解析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文主要给大家介绍MySQL表rename引起外键问题解析,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。背景:由于zabbix监
千家信息网最后更新 2025年11月07日MySQL表rename引起外键问题解析
本文主要给大家介绍MySQL表rename引起外键问题解析,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。
背景:
由于zabbix监控的问题图形展示很慢,对zabbix 库的events表进行了清理,清理过程采用了原表rename成bak表,重建events表后,将备份表部分数据导入到新表中。
后发现zabbix平台无法报警,无法恢复报警,日志类似报错: 2315:20190301:104933.609 [Z3005] query failed: [1452] Cannot add or update a child row: a foreign key constraint fails (`zabbix`.`event_recovery`, CONSTRAINT `c_event_recovery_1` FOREIGN KEY (`eventid`) REFERENCES `events_bak20190225` (`eventid`) ON DELETE CASCADE) [insert into event_recovery (eventid,r_eventid,correlationid,c_eventid,userid) values (4242559,4242581,null,null,null),(4242561,4242580,null,null,null),(4242447,4242580,null,null,null);原来rename后,关联的外键表的约束竟然一并修改成了归档表的关联。
处理方法如下:
查看哪些表建立外键时关联了归档表
select distinct TABLE_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_SCHEMA ='zabbix' and CONSTRAINT_name != 'PRIMARY' and REFERENCED_TABLE_NAME like 'event%';+----------------+--------------------+-----------------------+| TABLE_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME |+----------------+--------------------+-----------------------+| acknowledges | c_acknowledges_2 | events || alerts | c_alerts_2 | events || alerts | c_alerts_5 | events || event_recovery | c_event_recovery_1 | events || event_recovery | c_event_recovery_2 | events || event_recovery | c_event_recovery_3 | events || event_tag | c_event_tag_1 | events_bak20190225 || problem | c_problem_1 | events || problem | c_problem_2 | events |+----------------+--------------------+-----------------------+查看表结构:
show create table event_tag\G*************************** 1. row *************************** Table: event_tagCreate Table: CREATE TABLE `event_tag` ( `eventtagid` bigint(20) unsigned NOT NULL, `eventid` bigint(20) unsigned NOT NULL, `tag` varchar(255) NOT NULL DEFAULT '', `value` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`eventtagid`), KEY `event_tag_1` (`eventid`), CONSTRAINT `c_event_tag_1` FOREIGN KEY (`eventid`) REFERENCES `events_bak20190225` (`eventid`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8修改外键约束:
alter table event_tag drop FOREIGN KEY c_event_tag_1;alter table event_tag add FOREIGN KEY c_event_tag_1 (`eventid`) REFERENCES `events`(`eventid`) ON DELETE CASCADE;zabbix好多外键,下次清理数据直接删除吧。
看了以上MySQL表rename引起外键问题解析介绍,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,大家可以继续关注行业资讯板块,会定期给大家更新行业新闻和知识,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
问题
关联
数据
知识
行业
报警
解答
专业
东西
书籍
可在
图形
地方
备份
多年
实际
小时
平台
意义
文献
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部队微课网络安全
服务器组建
天津便宜服务器机柜云主机
常州网络营销软件开发销售价格
网络技术应用题库答案
对话服务器
学院网络安全主题班会
中华人民网络安全法第47条
唐山销售客户管理软件开发
浪潮服务器蓝屏
笔记本可以打开数据库吗
bug软件开发
服务器多大够用
大学生网络安全法规
关键字 数据库
神通数据库新建库sql语句
什么服务器高速稳定
课程设计软件开发
常用数据库有哪些优缺点
软件开发部门描述
数据库的创建上机体会
软件开发工程的认知
软件开发岗位竞聘演讲稿
内部网络安全执行
数据库和网络技术哪个用的多
.net软件开发招聘网
打开服务器管理终端
学校秋天网络安全会议
安全三件套日志服务器
计算计网络技术基础知识