Mysql 已为两个表创建触发器,但收到错误消息

Mysql 已为两个表创建触发器,但收到错误消息,mysql,triggers,phpmyadmin,Mysql,Triggers,Phpmyadmin,我有两张桌子: 订单-存储我的购物车中的所有信息 项目-门店id | scode |产品|价格|销售价格|库存 我提出了下面的触发器,当在“订单”中将订单插入数据库时,我希望它在“项目表”中将“库存”数量更新为-1 CREATE TRIGGER `order_updater` AFTER INSERT ON `orders` FOR EACH ROW UPDATE items SET inventory = inventory - 1 WHERE id = new.id END; 当我尝试在p

我有两张桌子:

  • 订单-存储我的购物车中的所有信息
  • 项目-门店id | scode |产品|价格|销售价格|库存
  • 我提出了下面的触发器,当在“订单”中将订单插入数据库时,我希望它在“项目表”中将“库存”数量更新为-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\u update
    在插入后为每行创建触发器
    order\u updater
    在插入后为每行更新项目设置inventory=inventory-1,其中id=new.id END;”

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

  • 用这个触发器能做到吗
  • 触发器将更新特定项还是所有项
  • 触发器是否可以添加到products.htm页面,或者是否需要在phpMyAdmin中
  • 我不确定代码是否完全正确,因为我是新手,如果有任何提示,我将不胜感激


    *更新: phpMyAdmin:我从页面上复制了它,上面写着:版本信息:4.0.8,最新稳定版本:4.0.9*尝试以下内容:

    分隔符$$
    在“订单”上插入后创建触发器“订单\更新程序”`
    每行
    开始
    更新`项目`
    设置'inventory`='inventory`-1
    其中`id`=新的。`id`;
    结束$$
    定界符;
    
    更新

    您使用的是什么版本的phpMyAdmin?下面的示例使用phpMyAdmin 4.1.0-beta2版本,工作正常


    Cheers仍然收到错误消息:在处理您的请求时:以下查询失败:“在插入
    项目之前为每行定界符创建触发器
    订单更新程序
    ,$$CREATE TRIGGER
    订单更新程序
    插入
    订单之后为每行开始更新
    项目
    设置
    库存
    =
    库存
    -1其中
    id
    =新建。
    id
    ;结束$$分隔符;“MySQL说:#1064-您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解在第1行插入
    orders
    后在“$$CREATE TRIGGER
    order\u updater
    附近使用的正确语法。您是否试图在其他触发器中创建触发器?我真的不知道如何操作。”他的但根本不存在触发器。我正试图创建一个触发器来完成我上面概述的任务。你不能在另一个触发器中创建触发器吗?你不能在触发器中创建触发器。这里有一个简单的例子,展示了如何创建触发器。wchiquito-为此干杯,但我仍然不知道:-(你如何使用它