MySQL表rename引起外键问题解析
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本文主要给大家介绍MySQL表rename引起外键问题解析,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,累计多年的实践经验可分享给大家。背景:由于zabbix监
千家信息网最后更新 2024年11月24日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安全错误
数据库的锁怎样保障安全
用数据库算质数
西安中凯网络技术有限公司
服务器多人登录对方会怎么样
疾病库数据库
学校代理服务器
台式电脑服务器自动生产线怎么样
diy低功耗服务器
台服数据库
小米媒体服务器干啥的
开机不开启数据库是什么原因
大学网络安全演讲观后感
北京红旗网络技术公司
网络安全教育观后感作文
武汉临空港网络安全学院招商
idea配置tomcat服务器
删除数据库中某几条的数据
如何参与网络安全周
万人服务器
sql数据库学了有用吗
深圳二手服务器回收选哪家
把一个对象存到数据库一个字段
网络安全执法检查发现问题
sql语句两个数据库
软件开发技术与方法
数据库难不难学好
h1z1北美服务器加速器
学生会网络技术部纳新
和数据库交互的方式
华为hr2285服务器如何重启
河北系统软件开发服务费