仍然出现MULTI DELETE错误,我看了其他问题,但问题仍然没有解决?

时间:2019-11-29 16:21:07

标签: mysql

我知道有类似问题的分配,并且我已经阅读了这些问题并应用了一些代码,并了解要执行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的SupplierNum都将被删除

  

错误消息=错误代码1109。MULTI中的未知表supplies   删除

1 个答案:

答案 0 :(得分:1)

如果您分配别名,请使用它,并避免对列名产生歧义

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