如何在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'
请告诉我你的一些想法。
答案 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
选项中拼写出的子查询中引用,与上面的示例完全相同。