gpt4 book ai didi

mysql - 为两个表创建了 TRIGGER 但收到错误消息

转载 作者:行者123 更新时间:2023-11-30 01:03:32 25 4
gpt4 key购买 nike

我有 2 张 table :

  1. 订单 - 存储我的购物车中的所有信息
  2. 商品 - 商店 ID |代码 |产品 |价格|销售价格 |库存

我想出了下面的触发器,当将订单插入数据库中的“订单”时,我希望它将“项目表”中的“库存”数量更新为-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 BEFORE INSERT ON items FOR EACH ROW CREATE TRIGGER order_updater AFTER INSERT ON 订单 FOR EACH ROW UPDATE items SET inventory = inventory - 1 WHERE id = new.id END;"

MySQL 说:#1303 - 无法从另一个存储例程中创建触发器

  1. 可以使用此触发器来完成此操作吗?
  2. 触发器会更新特定项目还是所有项目?
  3. 触发器可以添加到产品 .htm 页面还是需要添加到 phpMyAdmin 中?

我不确定代码是否完全正确,因为我是新手,任何指针将不胜感激。

<小时/>

*更新:phpMyAdmin :我从页面复制了这个:版本信息:4.0.8,最新稳定版本:4.0.9*

最佳答案

尝试如下:

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,可以正常运行。

enter image description here

关于mysql - 为两个表创建了 TRIGGER 但收到错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com