我有2個表:TRIGGER創建兩個表,但得到錯誤信息
- 指令 - 存儲所有信息,從我的購物車
- 項 - 商店ID | scode |產品|價格| saleprice |庫存
當我在'訂單'中將訂單插入到數據庫中時,我想到了下面的觸發器我希望它在'商品表'中將'庫存'數量更新爲-1。
CREATE TRIGGER `order_updater` AFTER INSERT ON `orders`
FOR EACH ROW UPDATE items
SET inventory = inventory - 1
WHERE id = new.id
END;
當我嘗試將其添加在phpMyAdmin的觸發器我不斷收到這樣的信息:
一個或多個錯誤發生在處理您的請求:
下面的查詢失敗:「CREATE TRIGGER orer_update
插入前items
FOR EACH ROW CREATE TRIGGER order_updater
插入後orders
FOR EACH ROW UPDATE項目SET inventory = inventory - 1 WHERE id = new.id END;「
MySQL說:#1303 - Can't create a TRIGGER from within another stored routine
。
- 這可以用這個觸發器來完成嗎?
- 觸發器是否會更新特定項目或所有項目?
- 是否可以將觸發器添加到產品.htm頁面,還是需要在phpMyAdmin中?
我不確定代碼是否完全正確,因爲我是新手,任何指針將不勝感激。
* UPDATE: phpMyAdmin的:我複製這從一個頁面,它說:版本信息:4.0.8,最新的穩定版本:4.0.9 *
乾杯仍收到錯誤消息:處理您的請求:下面的查詢失敗:「CREATE TRIGGER'order_updater' BEFORE INSERT ON'items' FOR EACH ROW DELIMITER $$ CREATE TRIGGER'order_updater' INSERT AFTER ON'orders' FOR EACH ROW BEGIN UPDATE'items' SET'inventory' ='inventory' - 1 WHERE'id' = new.'''' END END DELIMITER;「 MySQL說:#1064 - 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'$$ CREATE TRIGGER'order_updater'後使用正確的語法使用'INSERT ON'EOR ROW BEG'order by' – user2940698
您是否嘗試在其他觸發器內創建觸發器? – wchiquito
我真的不知道如何做到這一點,但根本沒有觸發器。我正在嘗試創建一個來完成我上面概述的內容。你不能在另一個觸發器內創建觸發器嗎? – user2940698