将MySQL查询转换为Percona pt-archiver字符串

时间:2017-11-09 14:03:00

标签: mysql sql percona

如何在pt-archiver中表达这个?

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

我找不到在pt-archiver字符串中连接Table1和Table2的任何可能性。我试过这个但是缺少表2的连接字符串:

pt-archiver --source h=127.0.0.1,D=db,t=Table1 --purge --where 'Table2.id >= 1'

请告诉我你的一些想法。

1 个答案:

答案 0 :(得分: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)'. 
     

这可能有效,但我不确定如何以及在何处声明父表。一些想法?

您在源DSN中为pt-archiver准确声明了一个表。这是本例中的child表。

您没有在pt-archiver选项中声明parent表。它仅在您在--where选项中拼写出的子查询中引用,与上面的示例完全相同。