Unknown column 'user_id' in 'field list', Time: 0.001000s(普通的标题,不一样的经历)

在生产环境中,一个长期运行的INSERT SQL突然因为'Unknown column'错误引发ELK报警。经过排查,问题可能源于新增的触发器导致的跨库插入错误。创建了一个触发器,在表test_table插入数据后,会向同结构的test_table_ins插入数据,但由于字段名称不匹配导致错误。
摘要由CSDN通过智能技术生成

标题说起

    首先感谢您能点击到这篇文章,对于一个不算新手的我来说,这个标题在学校刚学习数据库的时候,大家都不陌生了,经常出现的场景在一些select、update、insert 列名写的不对,都有可能出现这样的error 提示,但是对于我个人来说,生产上一个运行了很久的insert 语句突然接收到了elk 的一个报警,插入时列找不到,让我很是懵* 啊 ,有点丈二和尚摸不着头脑的感觉。

场景再现

    elk 报警信息大致如下  INSERT INTO table_name         (userId,birth) VALUES (?,00000000); ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'userPersonalInfoId' in 'field list' ;

   运行了很长时间的简单的sql ,怎么会出现这中问题呢,当时就找了dba ,dba 给的解释是可能是跨库插入(系统操作两个库,双写),这个解释很敷衍,我觉得不应该会有问题,带着好奇和敷衍,在这个周日我还是带着问题,一探究竟;

问题排查:

     可能出现原因:

          1. sql 本身错误(排除)2. 其他被触发的sql(spring aop /触发器)

第一种不可能,第二种spring aop 也不可能,报错代码行数明显是执行插入语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值