我只想以两种方式存储记录。
- 如果存在,它将更新信息
- 如果它不存在,它将作为新记录插入
以下是我的表的大纲模式:
product_purchase_item有 product_purchase_item_id、product_id、数量列
product_stock有 product_stock_id、product_id、product_total_quantity 列
我正在创建一个触发器
DELIMITER //
CREATE TRIGGER store_check AFTER INSERT ON product_purchase_item
FOR EACH ROW
BEGIN
DECLARE X INTEGER;
SET X =(SELECT product_id FROM product_stock where product_id = NEW.product_id);
IF NEW.product_id !=X THEN
INSERT INTO product_stock VALUES(NULL,NEW.product_id,NEW.quantity);
ELSE
UPDATE product_stock
SET product_total_quantity=product_total_quantity+NEW.quantity
WHERE product_id=NEW.product_id;
END IF;
END;//
DELIMITER;//
问题出在product_stock表中,当产品记录不存在时,INSERT 查询不起作用,但当产品记录存在时,更新查询工作正常。