Mysql 错误 #2014 - 命令不同步;您现在无法在存储过程中运行此命令
Posted
技术标签:
【中文标题】Mysql 错误 #2014 - 命令不同步;您现在无法在存储过程中运行此命令【英文标题】:Mysql error #2014 - Commands out of sync; you can't run this command now in a stored procedure 【发布时间】:2019-04-25 05:19:21 【问题描述】:我在mysql
中有以下stored procedure
:
DELIMITER $$
CREATE DEFINER=`user`@`localhost` PROCEDURE `insert_patient`(IN `name` VARCHAR(45), IN `surname` VARCHAR(45), IN `middle_name` VARCHAR(45), IN `patient_gender` VARCHAR(15), IN `patient_weight` VARCHAR(15), IN `patient_height` VARCHAR(15), IN `patient_ethnic_origin` VARCHAR(45))
NO SQL
BEGIN
BEGIN
INSERT
INTO
patient(
name,
surname,
middle_name
)
VALUES(
name,
surname,
middle_name
) ;
SELECT
LAST_INSERT_ID() AS patient_local_id;
END;
BEGIN
INSERT
INTO
demographics(
patient_id,
gender,
weight,
height,
ethnic_origin
)
VALUES(
patient_local_id,
patient_gender,
patient_weight,
patient_height,
patient_ethnic_origin
) ;
END;
END$$
DELIMITER ;
当我尝试从 phpmyadmin
执行此存储过程时,我收到以下错误:
Unrecognized keyword. (near "ON" at position 25)
SQL query: Edit Edit
SET FOREIGN_KEY_CHECKS = ON;
MySQL said: Documentation
#2014 - Commands out of sync; you can't run this command now
【问题讨论】:
错误消息中的行在您的存储过程中没有出现,至少在您实际向我们展示的代码中没有出现。但是,你应该使用SET FOREIGN_KEY_CHECKS = 1
。
@TimBiegeleisen 我是否必须在我的存储过程代码中包含SET FOREIGN_KEY_CHECKS = 1
?
嗯,你已经在你的过程代码中这样做了吗?错误信息似乎是。
@TimBiegeleisen 我的 proc 代码中没有它。也许这是默认情况下发生的事情?
SET FOREIGN_KEY_CHECKS = ON;
不是有效的 MySQL AFAIK。一定有什么东西在插入此代码。
【参考方案1】:
我找到了解决方案。当我执行存储过程时,我选中了以下框。
【讨论】:
以上是关于Mysql 错误 #2014 - 命令不同步;您现在无法在存储过程中运行此命令的主要内容,如果未能解决你的问题,请参考以下文章
命令不同步;在 Mysql 中调用存储过程时,您现在无法运行此命令
Mysql + django 异常:“命令不同步;您现在无法运行此命令”