You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何插入Test_Results表时触发MariaDB ERROR 4078 (HY000)错误?

错误原因与修复方案
  • 核心错误原因:触发器代码存在语法错误,导致数据类型不匹配
    查看触发器代码中的这一行:

    ELSEIF NEW.Test_ID = (4, 8) THEN
    

    这里用=运算符去匹配一个行构造器(4, 8),但NEW.Test_ID是单个整数类型,MariaDB不支持单个整数和行数据进行等于比较,因此触发ERROR 4078 (HY000): Illegal parameter data types int and row for operation '='错误。

    插入Test_ID=5时正常,是因为该值会匹配到ELSEIF NEW.Test_ID in (5, 27, 28) THEN分支,触发器执行完该分支逻辑后就结束,不会触及后面错误的代码行。

    而插入Test_ID=4或0时:

    • 插入4时,会直接进入这个错误的分支判断,触发类型不匹配错误;
    • 插入0时,前面所有分支都不匹配,会执行到这个错误的分支判断,同样触发错误。
  • 修复方法:
    将错误行的=改为IN,修正后的代码如下:

    ELSEIF NEW.Test_ID IN (4, 8) THEN
    

    另外,最后一行ELSEIF NEW.Test_ID in (0) THEN可以简化为ELSEIF NEW.Test_ID = 0 THEN,语法更简洁,不修改也不会引发错误。

内容的提问来源于stack exchange,提问作者Endalma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:35:23