我有两张桌子:
我已经在下面的触发器,当一个订单被插入到数据库‘订单’,我希望它更新‘库存’数量在‘项目表’中的-1。
CREATE TRIGGER `order_updater` AFTER INSERT ON `orders`
FOR EACH ROW UPDATE items
SET inventory = inventory - 1
WHERE id = new.id
END;当我试图在phpMyAdmin中的触发器中添加它时,我一直收到以下消息:
在处理请求时发生了一个或多个错误:
以下查询失败:“为每一行在items上插入之前创建触发器order_updater,为每一行在orders上插入后创建触发器order_updater,为每一行更新项目设置库存=库存-1其中id = new.id结束;
MySQL说:#1303 - Can't create a TRIGGER from within another stored routine。
我不确定代码是否是正确的,因为我是新手,任何指针都将不胜感激。
*更新: phpMyAdmin :我从页面中复制了这个信息:版本信息: 4.0.8,最新稳定版本:
发布于 2013-11-09 11:43:10
试一试如下:
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,工作正常,没有问题。

https://stackoverflow.com/questions/19875472
复制相似问题