如何在pt archiver中表达这一点?

DELETE * FROM Table1 JOIN ON Table1.id=Table2.id WHERE Table2.id>=1;

我找不到在pt archiver字符串中连接表1和表2的任何可能性。我试过了,但是表2的连接字符串丢失了:
pt-archiver --source h=127.0.0.1,D=db,t=Table1 --purge --where 'Table2.id >= 1'

请给我一些你的想法。

最佳答案

我已经完成了像您描述的那样的任务,在这里我使用pt archiver来归档还必须连接到另一个表的行。

pt-archiver --source h=host,D=db,t=child --purge \
--where 'EXISTS(SELECT * FROM parent WHERE col=child.col AND child.col>=1)'.

这可以工作,但我不确定如何以及在何处声明父表。有什么想法?
在pt archiver的源DSN中只声明一个表。这是本例中的child表。
您没有在pt archiver选项中声明parent表。它只在--where选项中指定的子查询中引用,与上面的示例完全相同。

关于mysql - 将MySQL查询转换为Percona pt-archiver字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47203831/

10-15 01:46