在代码中执行CREATE PROC时,我对MYSQL(版本5.2)中的语法错误感到困惑。
MySQL Proc代码:
DELIMITER //
CREATE PROCEDURE Delete_BillOfMaterialsDetail
(IN InOrderDate DATE,
IN InProductCode varchar(40),
IN InRawMaterialProductCode varchar(40)
)
BEGIN
IF EXISTS
(SELECT * FROM basf_rawmaterialplanning.BillOfMaterialsDetail
WHERE OrderDate = InOrderDate
and ProductCode = InProductCode
and RawMaterialProductCode = InRawMaterialProductCode)
THEN
DELETE FROM basf_rawmaterialplanning.BillOfMaterialsDetail
WHERE OrderDate = InOrderDate
AND ProductCode = InProductCode
AND RawMaterialProductCode = InRawMaterialProductCode;
END IF;
END //
DELIMITER ;
我使用字符串数据类型构建它,然后针对DB执行它,这会产生语法错误。
我不确定我做错了什么?
答案 0 :(得分:0)
只需执行单独更改分隔符的命令,然后执行存储过程create命令。
系统目前正在考虑将其作为一个单一命令,因此错误:)
答案 1 :(得分:0)
试试这段代码 -
CREATE PROCEDURE Delete_BillOfMaterialsDetail3(
IN InOrderDate DATE,
IN InProductCode varchar(40),
IN InRawMaterialProductCode varchar(40))
DELETE FROM basf_rawmaterialplanning.BillOfMaterialsDetail
WHERE OrderDate = InOrderDate
AND ProductCode = InProductCode
AND RawMaterialProductCode = InRawMaterialProductCode;
答案 2 :(得分:0)
谢谢大家,终于想通了
我在MySqlScript对象中添加了我的脚本,并使用该类执行,100%工作,没有任何语法错误