我有两张桌子:
我已经提出了下面的触发器,当订单在'orders'中插入数据库时,我希望它在'items table'中将'inventory'数量更新为-1。
CREATE TRIGGER `order_updater` AFTER INSERT ON `orders`
FOR EACH ROW UPDATE items
SET inventory = inventory - 1
WHERE id = new.id
END;
当我尝试在phpMyAdmin中的触发器中添加它时,我不断收到此消息:
处理您的请求时发生了一个或多个错误:
以下查询失败:“创建触发器orer_update
在插入items
之前为每个行创建触发器order_updater
在插入orders
之后为每个行更新项目设置清单= inventory - 1 WHERE id = new.id END;“
MySQL说:#1303 - Can't create a TRIGGER from within another stored routine
。
我不确定代码是否正确,因为我是新手,任何指针都会受到赞赏。
*的 更新: phpMyAdmin:我从页面上复制了它:版本信息:4.0.8,最新稳定版本:4.0.9 *
答案 0 :(得分:0)
尝试类似:
DELIMITER $$
CREATE TRIGGER `order_updater` AFTER INSERT ON `orders`
FOR EACH ROW
BEGIN
UPDATE `items`
SET `inventory` = `inventory` - 1
WHERE `id` = new.`id`;
END$$
DELIMITER ;
<强>更新强>
您使用的是什么版本的phpMyAdmin?以下示例使用版本phpMyAdmin 4.1.0-beta2,没有问题。