创建存储过程"插入和更新"



我试图在存储过程中同时插入和更新查询,但遇到语法错误:

#1064-您的SQL语法有错误;在第1行的"@product_id int(11(、IN@ProductCode varchar(255(、IN@ProductName varchar(2…"附近,请查看与MariaDB服务器版本对应的手册,以获取要使用的正确语法

这是我在这里的查询:

DELIMITER //
CREATE PROCEDURE UpdateProductList(IN @product_id int(11), IN @ProductCode varchar(255), IN @ProductName varchar (255), IN @PiecesInBox varchar (255), IN @Price varchar (255))
BEGIN
IF @product_id = 0
INSERT INTO products(ProductCode, ProductName, PiecesInBox, Price) VALUES(@ProductCode, @ProductName, @PiecesInBox, @Price);
ELSE
UPDATE products SET ProductCode = @ProductCode, ProductName = @ProductName, PiecesInBox = @PiecesInBox, Price = @Price WHERE product_id = @product_id;
END IF
END //
DELIMITER ;

避免使用@,因为它们是为MariaDB:中的全局变量保留的

DELIMITER //

CREATE PROCEDURE UpdateProductList(
IN in_product_id     INT(11),
IN in_ProductCode    VARCHAR(255), 
IN in_ProductName    VARCHAR(255), 
IN in_PiecesInBox    VARCHAR(255), 
IN in_Price          VARCHAR(255)
)
BEGIN
IF in_product_id = 0 
THEN INSERT INTO products(ProductCode, ProductName, PiecesInBox, Price) 
VALUES (in_ProductCode, in_ProductName, in_PiecesInBox, in_Price);
ELSE UPDATE products 
SET ProductCode = in_ProductCode, 
ProductName = in_ProductName, 
PiecesInBox = in_PiecesInBox, 
Price       = in_Price 
WHERE product_id = in_product_id;
END IF;
END //
DELIMITER ;

相关内容

  • 没有找到相关文章

最新更新