首页 > 解决方案 > 仍然收到 MULTI DELETE 错误,我查看了其他问题,但问题仍未解决?

问题描述

我知道有很多类似的问题,我已经阅读了它们并应用了一些代码,并且理解要执行 MULTI DELETE,您需要加入要从中删除的表,但它仍然给我同样的错误。

这是查询

DELETE supplies
FROM supplies as s 
INNER JOIN supplier as supp ON s.supplierNum = supp.supplierNum
WHERE supplierNum = 'S3';

我正在尝试删除所有带有供应商编号的信息S3

表创建如下

CREATE TABLE supplier (
      supplierNum CHAR(2)   NOT NULL,
      name CHAR(10) NOT NULL,
      status TINYINT(4) NOT NULL,
      city VARCHAR(10)  NOT NULL,
      PRIMARY KEY (supplierNum)
)

用品表有一个复合键

CREATE TABLE supplies (
  supplierNum CHAR(2) NOT NULL,
  partNum CHAR(2) NOT NULL,
  quantity SMALLINT(6) NOT NULL,
  PRIMARY KEY (supplierNum, partNum),
  FOREIGN KEY (supplierNum) REFERENCES supplier (supplierNum),
  FOREIGN KEY (partNum) REFERENCES parts (partNum)
);

预期的结果是,在这两个表中,任何具有该值的供应商编号S3都将被删除

错误消息 = 错误代码 1109。MULTI suppliesDELETE 中的未知表

标签: mysql

解决方案


如果您分配别名,则使用它并避免列名的歧义

DELETE s
FROM supplies  s 
INNER JOIN supplier as supp ON s.supplierNum = supp.supplierNum
WHERE s.supplierNum = 'S3';

推荐阅读