我知道有类似问题的分配,并且我已经阅读了这些问题并应用了一些代码,并了解要执行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
删除
答案 0 :(得分:1)
如果您分配别名,请使用它,并避免对列名产生歧义
DELETE s
FROM supplies s
INNER JOIN supplier as supp ON s.supplierNum = supp.supplierNum
WHERE s.supplierNum = 'S3';