0

在代码中执行 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 ;

我使用字符串数据类型构建它,然后针对给出语法错误的数据库执行它。

我不确定我做错了什么?

  • 谢谢伙计们,我想通了,将发布答案,以便 StackOverflow 允许我
4

3 回答 3

0

只需单独执行更改分隔符的命令,然后执行存储过程创建命令。

系统目前认为它是一个单一的命令,因此错误:)

于 2012-07-02T11:00:22.117 回答
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;
于 2012-07-02T12:00:19.263 回答
0

谢谢大佬,终于弄明白了

我在 MySqlScript 对象中添加了我的脚本并使用该类执行,100% 工作,没有任何语法错误

于 2012-07-03T05:23:10.227 回答