レコードを2つの方法で保存したいだけです。
- 存在する場合は、情報を更新します
- 存在しない場合は、新しいレコードとして挿入されます
私のテーブルのアウトラインスキーマは次のとおりです。
product_purchase_itemには product_purchase_item_id、product_id、quantity 列があります
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 クエリは機能しませんが、製品レコードが存在する場合、更新クエリは適切に機能します。