Mysql错误#1064,未提供错误描述
我在mysql中有以下Mysql错误#1064,未提供错误描述,mysql,stored-procedures,Mysql,Stored Procedures,我在mysql中有以下存储过程 CREATE DEFINER=`cefcy`@`localhost` PROCEDURE `insert_eD_medication` (IN `p_id` INT(11), IN `strength` VARCHAR(45), IN `unit_id` INT(11), IN `package_no` VARCHAR(45), IN `medicinal_product_package` VARCHAR(45), IN `pharmaceutical_dose_
存储过程
CREATE DEFINER=`cefcy`@`localhost` PROCEDURE `insert_eD_medication` (IN `p_id` INT(11), IN `strength` VARCHAR(45), IN `unit_id` INT(11), IN `package_no` VARCHAR(45), IN `medicinal_product_package` VARCHAR(45), IN `pharmaceutical_dose_form_id` INT(11), IN `brandName` VARCHAR(45), IN `route_of_administration_id` INT(11), IN `date_of_dispense` DATE, IN `substitution` VARCHAR(45), IN `stat` TINYINT(4), IN `v_id` INT(11))
NO SQL
BEGIN
INSERT INTO `medication_dispensation_mapping` (`patient_id`, `strength`, `unit_id`, `package_no`, `medicinal_product_package`, `pharmaceutical_dose_form_id`,`brandName`, `route_of_administration_id`, `date_of_dispense_medicine_event`, `substitution`, `status`, `version_id`)
VALUES (p_id, strength, unit_id, package_no, medicinal_product_package, pharmaceutical_dose_form_id, brandName, route_of_administration_id, date_of_dispense, substitution, stat, v_id);
END
当我尝试运行它时,会出现以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
你能帮我吗?感谢@DanFromGermany的评论和建议,我找到了解决方案
即使我没有更改分隔符,我也必须在存储过程中定义它
因此,我的正确代码是:
DELIMITER $$
CREATE DEFINER=`cefcy`@`localhost` PROCEDURE `insert_eD_medication` (IN `p_id` INT(11), IN `strength` VARCHAR(45), IN `unit_id` INT(11), IN `package_no` VARCHAR(45), IN `medicinal_product_package` VARCHAR(45), IN `pharmaceutical_dose_form_id` INT(11), IN `brandName` VARCHAR(45), IN `route_of_administration_id` INT(11), IN `date_of_dispense` DATE, IN `substitution` VARCHAR(45), IN `stat` TINYINT(4), IN `v_id` INT(11))
NO SQL
BEGIN
INSERT INTO `medication_dispensation_mapping` (`patient_id`, `strength`, `unit_id`, `package_no`, `medicinal_product_package`, `pharmaceutical_dose_form_id`,`brandName`, `route_of_administration_id`, `date_of_dispense_medicinal_event`, `substitution`, `status`, `version_id`)
VALUES (p_id, strength, unit_id, package_no, medicinal_product_package, pharmaceutical_dose_form_id, brandName, route_of_administration_id, date_of_dispense, substitution, stat, v_id);
END;
$$
DELIMITER ;
您是否尝试过定义除(默认)之外的分隔符
代码>?@DanFromGermany否,分隔符为代码>。如果正文中只有一条语句,但obv中有一条语句,我不确定您是否需要分隔符。一条语句需要它。您应该查看@DanFromGermany,而在本例中,begin..end将作为一条语句计算-在过程中生成两条语句。在这种情况下,begin..end不是必需的,因为只有insert语句。