MySQL - 在代码中存储Proc创建语法错误

时间:2012-07-02 10:30:09

标签: mysql

在代码中执行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执行它,这会产生语法错误。

我不确定我做错了什么?

  • 谢谢大家我想通了,会发布答案,因为StackOverflow允许我

3 个答案:

答案 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%工作,没有任何语法错误