我在MySQL創建該觸發器(上表產品更新後):SQL錯誤(1442),任何解決方案?
BEGIN
set @parentid := (select parent_id from product where product_id = new.product_id);
if (old.price <> new.price) then
update product set price=new.price where product_id = @parentid and price > new.price;
end if;
END
但是,當我更新的價格,我得到這個錯誤
:SQL錯誤(1442)無法更新表'產品'存儲在 函數/觸發器中,因爲它已經被調用了 的存儲函數/觸發器使用。 */
我創建兩個表和兩個觸發器等:
Trigger 1
(後上表產品更新):
BEGIN
if (old.price <> new.price) then
insert into product_price
(product_id, price , date_added)
values
(new.product_id, new.price, SYSDATE());
end if;
END
Trigger 2
(後上表product_price
插入):
BEGIN
SET @parentid := (select parent_id from product where product_id = new.product_id);
if (@parentid >0) then
update product set price=new.price where product_id in (select @parentid);
end if;
END
但是,我又得到了那個錯誤。
我真的需要在兒童價格變化時更新父母價格,你有什麼解決方案嗎?
謝謝。
你究竟想要做什麼?在明確更新它之後,您希望product.price具有什麼價值? – JRD
@JRD他沒有對正在插入或更新的行進行任何更改,他正在嘗試更新父級產品。 – Barmar
我有一些兒童產品,我需要顯示父母產品上最便宜的兒童價格。 –