我收到一条通用错误消息,不知道查询出了什么问题。我该怎么解决?
查询说明:有两个表,发票和临时表。我需要从临时表中提取邮政编码,然后根据发票号将其推送到发票表中。
START TRANSACTION
UPDATE
Invoice
SET
Invoice.zip_code = (SELECT zip_code FROM temp WHERE temp.invoice_number = Invoice.invoice_number)
WHERE
Invoice.invoice_date >= '2017-08-01'
ROLLBACK
这是错误:
错误代码:1064您的SQL语法错误;检查 与您的MySQL服务器版本相对应的手册 在'UPDATE Invoice SET Invoice.zip_code =(SELECT zip_code FROM temp WHERE temp'在第3行
答案 0 :(得分:1)
在每个命令后添加分号。
START TRANSACTION;
UPDATE
Invoice
SET
Invoice.zip_code = (SELECT zip_code FROM temp WHERE temp.invoice_number = Invoice.invoice_number)
WHERE
Invoice.invoice_date >= '2017-08-01';
ROLLBACK;
答案 1 :(得分:0)
@Daniel Blais这样的声音是对的。解决问题的一件事是分解查询并单独运行每个部分。这将帮助您找出问题所在。
SELECT zip_code FROM temp WHERE temp.invoice_number = Invoice.invoice_number;
另一个问题:为什么在更新表后回滚?您不想提交吗?