1

我正在尝试进行查询以同时创建多个程序;但是,当我尝试在开头删除它们时会引发 1064 错误,并且只考虑第一个过程查询。

当我尝试单独运行它时它会完美地创建程序但是当我一起运行它时它会停止它在第一次下降后停止

DROP PROCEDURE IF EXISTS add;
DROP PROCEDURE IF EXISTS remove;
DROP PROCEDURE IF EXISTS edit;

#PROCEDURE TO ADD  
DELIMITER //
CREATE PROCEDURE add
(p_Name VARCHAR(30), p_Quantity DECIMAL(6,2), p_QuantityType VARCHAR(5), p_Notes VARCHAR(50))

BEGIN
    INSERT INTO table
    (name, quantity, quantity_type, notes)
    VALUES
    (p_Name, p_Quantity, p_QuantityType, p_Notes);  
    COMMIT;
    END //
DELIMITER;

#PROCEDURE TO REMOVE BASED ON THE INVENTORY ITEM ID 
DELIMITER //
CREATE PROCEDURE remove
( p_Id SMALLINT(4))

BEGIN
    DELETE FROM table
        WHERE id=p_Id;

    COMMIT;
    END//
DELIMITER ;

#PROCEDURE TO EDIT BASED ON THE INVENTORY ITEM ID
DELIMITER //
CREATE PROCEDURE edit
(p_Name VARCHAR(30), p_Id SMALLINT(4))

BEGIN
    UPDATE table
        SET name=p_Name
        WHERE id=p_Id;

    COMMIT;
    END //
DELIMITER ;
4

1 回答 1

0

建议避免使用保留字(add、table)或给予特殊处理。见9.3。保留字

SQL Fiddle demo

于 2014-02-18T17:23:16.853 回答