mysql转储导出更多带有where条件的表



我不知道如何为具有where条件的特定表执行mysqldump。这是我的指示:

mysqldump --user=... --password=... --host=... DB_NAME user --where "name not in ('root', 'root2')",customer --where "customer_name not in ('root', 'root2')" >dump.sql

我收到这个错误:

mysqldump:无法执行'SELECT/*!40001 SQL_NO_CACHE*/*来自userWHERE customer_name不在('root','root2'('中:"where clause"(1054(中的未知列"customer_name">

怎么了?感谢

不能为每个表创建新的WHERE条件。有一个WHERE条件,它将应用于每个表。因此,只有在备份中包含的每个表中都存在列的情况下,才能引用该列。

您可以为每个表运行一个mysqldump命令,但如果这样做,就无法获得一致的备份。我的意思是,您不能使用锁或事务来确保备份包括单个时间点的数据。因此,如果数据库在此期间正在使用,那么您稍后备份的表可能会引用自备份早期表以来创建的新行。

您可以将shell脚本和mysqldump组合在一起,为每个表单独进行转储。

最新更新