删除孤立的wp_postmeta记录安全吗?

时间:2014-10-10 作者:logicbird

我正在woocommerce网站上使用woocommerce作为购物车。产品和产品变化都作为记录存储在wp\\U posts表中。每种变体都有一个近似值。15-20 wp\\U Posteta中的相关记录(用于存储该产品的各种详细信息,如SKU或价格)。

我发现许多变体(本例中超过600个)没有关联的父产品。是的,他们确实这样做了,但母产品已经不存在了。我发现以下方法可以从wp\\U帖子中删除这些孤立的变体:

DELETE o FROM `wp_posts` o
LEFT OUTER JOIN `wp_posts` r
ON o.post_parent = r.ID
WHERE r.id IS null AND o.post_type = \'product_variation\'
我认为这将很好地实现这一目标。但它仍会在wp\\U Posteta表中留下许多记录。

我的问题是,我是否可以从wp\\U Posteta中删除任何post\\u id与wp\\u posts中现有记录不对应的记录。我的意思是,我知道我可以做到,但从wp\\U Posteta中删除这些孤立记录是否存在任何潜在的陷阱。也就是说,如果元信息对应于不存在的产品变体。我可以安全地删除它吗?

2 个回复
SO网友:Jonathan Greaves

另一种方法(不是更好,但更容易遵循)是:

DELETE * FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts)
显然,将前缀从“wp\\u0”更改为安装程序使用的任何前缀

SO网友:bgcode

你只需要做一个RIGHT JOIN 查询具有NULL 价值观

结束

相关推荐

Add CPT values to Database

我不确定这是不是件容易的事。我有一个插件,具有定制帖子类型所需的所有功能:过滤器、导航。。。我需要为这个CPT创建很多帖子(使用分类法)(需要做很多工作才能正确创建它)。所以我只想添加一次这个自定义帖子,而不是每次我想利用我在其他网站的插件。。。实现这一目标的最佳方式是什么?我是不是每次都要进行某种形式的进出口贸易?我应该利用wp\\u insert\\u post并对帖子的内容进行硬编码吗?为我的英语道歉,我不知道我是否已经解释过了。。。谢谢