簡體   English   中英

根據列值將行插入另一個表

[英]Insert rows into another table based on column value

我有兩張桌子(發貨和庫存)。

發貨表(id、item_id、數量、expiry_date、狀態)

庫存表(id、shipping_id、item_id、數量、expiry_date)

status 可以是AcceptedReturned

我想創建一個觸發器,僅將接受的貨件插入到庫存表中

這是我的代碼,我不知道如何實現。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM