[英]Insert rows into another table based on column value
我有兩張桌子(發貨和庫存)。
發貨表(id、item_id、數量、expiry_date、狀態)
庫存表(id、shipping_id、item_id、數量、expiry_date)
status 可以是Accepted或Returned 。
我想創建一個觸發器,僅將接受的貨件插入到庫存表中
這是我的代碼,我不知道如何實現。
DELIMITER //
CREATE TRIGGER insert_stocks AFTER INSERT ON shipments
FOR EACH ROW
BEGIN
IF shipments.status = 'Accepted' THEN
INSERT INTO stocks (shipment_id, item_id, quantity, expiry_date)
VALUES (NEW.shipments, NEW.item_id, NEW.quantity, NEW.expiry_date);
END IF;
END //
DELIMITER ;
謝謝您的幫助。
您的想法是正確的,但是在檢查新行的狀態時,您應該使用NEW
關鍵字,就像您在insert
語句中所做的那樣。
此外,貨件 ID 應取自NEW.id
,而不是NEW.shipments
(不存在)。
IF NEW.status = 'Accepted' THEN
INSERT INTO stocks (shipment_id, item_id, quantity, expiry_date)
VALUES (NEW.id, NEW.item_id, NEW.quantity, NEW.expiry_date);
END IF;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.