【发布时间】:2017-02-04 18:09:27
【问题描述】:
我的存储过程有问题(在 MySQL 上)。如果记录存在,我需要表的数据更新过程,否则插入记录。我有:
DELIMITER //
CREATE PROCEDURE saveorUpdate(in product varchar(30), price int, stock int, active varchar(5))
BEGIN
DECLARE id int;
SELECT id_pro FROM products WHERE product=product into id;
IF(id_pro=id)THEN
UPDATE products SET product=product, price=price, stock=stock, active=active
WHERE id_pro=id;
ELSE
INSERT INTO products (product, price, stock, active) VALUES
(product, price, stock, active);
END IF;
END
有什么想法吗?
【问题讨论】:
-
为什么要使用存储过程?您可以使用 REPLACE... INTO ... 语句通过单个 SQL 执行此操作。在这种情况下,您需要根据主键列进行替换。
-
会将其视为一种实现方式。
标签: mysql sql stored-procedures