存储过程创建成功但调用报错:Cannot read properties of undefined (reading 'undefined')
问题排查与解决
你遇到的Cannot read properties of undefined (reading 'undefined')并非MySQL原生错误,而是执行SQL的客户端工具(如VS Code的SQL插件、Node.js应用等)抛出的JavaScript层面错误。从提供的代码来看,存储过程的创建和调用语法本身是正确的。
可行的排查方向
- 切换客户端工具测试:比如改用MySQL Workbench、Navicat这类专业数据库客户端执行代码,排除当前工具的兼容性问题。
- 显式指定语句分隔符:部分客户端会将存储过程内的分号识别为语句结束符,导致存储过程创建不完整。可以修改存储过程创建语句:
DELIMITER // DROP PROCEDURE IF EXISTS get_table// CREATE PROCEDURE get_table() BEGIN SELECT 2; END // DELIMITER ;
之后再执行CALL get_table();
- 检查应用端调用逻辑:如果是在Node.js等程序中调用,确认数据库驱动(如mysql2)版本是否兼容,调用代码是否正确处理了存储过程的返回结果,避免因变量未初始化引发JS报错。
内容的提问来源于stack exchange,提问作者Jaafar Melhem
相关产品推荐
相关产品推荐

