mysqldump包含多个表,where子句抛出错误码(1054)



我想从多个表中转储特定时间段的数据。

因此,我在转储命令中为每个表添加了一个WHERE子句。我使用了以下命令:

mysqldump -uroot -proot database_name medical_voucher --where="voucher_date between '2019-06-24' and CURDATE()" rawdata --where="`date` between '2019-06-24' and CURDATE()"> d:test4.sql

我得到以下错误

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `medical_voucher` WHERE `date` between '2019-06-24' and CURDATE()': Unknown column 'date' in 'where clause' (1054)

所以请告诉我这里有什么问题。我的sqldump命令不能正常工作,因为它是?

我看到问题了。您希望可以为每个表指定不同的--where选项,并命名不同的列。

这不是mysqldump的工作方式

您可以使用--where选项指定一个条件,并且相同的条件将逐字地用于转储的所有表。

所以你最好使用一个对所有表都有效的条件。不要命名仅存在于某些表中的列。

要做你想做的事,你不能使用mysqldump。您要么必须多次运行mysqldump(如果在这些命令之间数据发生变化,则可能会得到不一致的数据),要么实现您自己的工具。

最新更新