MySQL中的DELETE语句的表名不正确

MySQL中的DELETE语句的表名不正确,mysql,sql,Mysql,Sql,我有一个名为Pulljes service的数据库,每当我在其中运行此查询时: DELETE FROM order_items WHERE order_id = 42 我得到这个错误: #1146 Table 'broodjes-service.i' doesn't exist 虽然我确信此表存在,但使用此表结构: 问题 我试图从名为order\u items的表中删除一行,但出于某种原因,它采用了表名I 问题 为什么要用我的桌子名 我怎样才能使我的查询实际上是该特定表中的一行呢? 我确实有

我有一个名为Pulljes service的数据库,每当我在其中运行此查询时:

DELETE FROM order_items WHERE order_id = 42
我得到这个错误:

#1146 Table 'broodjes-service.i' doesn't exist
虽然我确信此表存在,但使用此表结构:

问题

我试图从名为order\u items的表中删除一行,但出于某种原因,它采用了表名I

问题

为什么要用我的桌子名 我怎样才能使我的查询实际上是该特定表中的一行呢? 我确实有用于表order\u项目的触发器

此选项用于删除某些内容时:

UPDATE orders o
   INNER JOIN (SELECT i.order_id id, SUM(i.quantity * p.price) total_price
      FROM `orders-items` i 

   INNER JOIN products p ON p.id = i.products_id 
      AND i.order_id = old.order_id) t ON t.id = o.id 

SET o.total_price = t.total_price
插入触发器

更新触发器

如果您使用别名,则如下所示

DELETE i 
FROM `broodjes-service`.order_items i
WHERE order_id = 42
不要混合使用数据库名和别名

DELETE `broodjes-service`.i 
FROM `broodjes-service`.order_items i
WHERE order_id = 42
尝试:


是否附加了任何触发器?@MrTux是的,我更新了我的问题。请尝试更新您的删除触发器,并使用表名而不是定义的别名。表订单项是否存在?可能单独测试删除触发器查询;我更新了我的问题,我有它的触发器。一个用于删除、更新和插入。顺便说一句,当使用您的查询时,我得到了这个错误:1064-您的SQL语法有一个错误;检查与您的MySQL服务器版本相对应的手册,以了解使用第1I行中的近'-service.order\u items i WHERE order\u id=42'的正确语法,我更正了我的答案。您的触发器代码与错误不匹配。它一定在别的地方,可能是因为-在我DB的名字里?或者已经保留了order_项中的单词顺序或其他内容?您评论中的错误消息实际上是因为没有转义DB名称。我认为它来自触发器,但不是您添加到问题中的触发器。查找包含Jes_服务的代码
DELETE FROM `broodjes-service`.order_items 
WHERE order_id = 42
DELETE i 
FROM `broodjes-service`.order_items i
WHERE order_id = 42
DELETE `broodjes-service`.i 
FROM `broodjes-service`.order_items i
WHERE order_id = 42
Use broodjes-service;
DELETE FROM order_items WHERE order_id = 42