INSERT INTO tmp SELECT. Выборка во временную таблицу в MySQL

Бывает необходимо удалить из одной таблицы данные по критериям, которые завязаны на других таблицах (умри, вордпресс). В таком случае может пригодиться временная таблица.

# создаем временную таблицу с одним полем для id
CREATE TEMPORARY TABLE tmp_ids (id INT);
 
 
 
# вставляем в нее результаты выборки
INSERT INTO tmp_ids (id)
 
  SELECT p.ID FROM `wp_posts` p
 
    JOIN `wp_term_relationships` tr ON tr.object_id=p.ID
 
   WHERE tr.term_taxonomy_id = 10 AND p.post_type="post" AND p.post_status="publish" AND p.post_date < '2010-09-01';
 
 
 
# теперь удаляем нужные нам записи
DELETE FROM `wp_posts` WHERE ID IN (SELECT id FROM tmp_ids);

Надо помнить, что временная таблица действует в рамках одной сессии и удалится после ее окончания. Поэтому все три запроса должны быть в рамках одной транзакции.



Запись опубликована в рубрике MySQL с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*


− 2 = 1

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">