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

SQL删除存储过程执行失败问题排查求助

问题代码错误点
  • 语法混用了SQL Server和MySQL的规则:你使用Delimiter关键字说明运行环境是MySQL,但存储过程参数用@row、加AS关键字都是SQL Server的语法,MySQL不支持。MySQL的存储过程参数需要明确指定IN/OUT/INOUT属性,不需要@前缀,且参数列表必须包裹在括号内。
  • DELETE关键字拼写错误:写了DELETE FORM,正确写法是DELETE FROM。
  • 存储过程结束标识缺失:修改分隔符为//后,存储过程的END后需要加//标识结束,再改回默认分隔符。
  • 潜在类型匹配问题:如果你的row_names字段是数值类型,传入字符串'11'可能出现隐式转换问题,建议参数类型和字段类型保持一致。
修正后的完整代码
-- 修改分隔符
Delimiter //
CREATE PROCEDURE BIRD_STRIKE_INCIDENT_DELETE (IN p_row TEXT)
BEGIN
    DELETE FROM bird_strike.incidents WHERE row_names = p_row;
END //
-- 改回默认分隔符
delimiter ;

-- 调用存储过程
Call BIRD_STRIKE_INCIDENT_DELETE('11');
补充说明
  • 参数名加p_前缀是为了和字段名区分,避免出现字段名和参数名重名导致的逻辑错误,你也可以保留原参数名只要不和字段冲突即可。
  • 如果row_names是INT类型,建议把参数类型改为INT,调用时直接传11即可,不需要加引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:54:06