2015-11-16 2 views
0

Мне нужно создать базу данных, которая должна представлять доступные в настоящее время торренты на торрент-трекере и обновлять ее полностью каждый день или около того, заменяя ранее сохраненные данные и удаляя записи о тех торрентах, которые были удалены с сайта.Как заменить всю таблицу

Как я могу это сделать? Если я просто собираю новые данные во временной таблице, а затем пытаюсь сделать DROP TABLE и переименовать временную таблицу в имя основной таблицы, я сделаю другие ресурсы, которые также используют этот БД, неспособный выполнять свою работу в течение некоторого периода времени. Или это лучший способ сделать это в любом случае, и я должен просто выполнять эти операции в одной транзакции?

Я собираюсь использовать MySQL или PostgreSQL, но я могу изменить эту идею тем, что вы мне дадите.

ответ

1

Использовать MySQL truncate table, за которым следуют инструкции (-ы) вставки. https://dev.mysql.com/doc/refman/5.6/en/truncate-table.html

+0

Итак, 'TRUNCATE TABLE' и множество инструкций' INSERT' в одной и, возможно, огромной транзакции? – FrozenHeart

+1

Чтобы ограничить количество операторов вставки, вы можете использовать 'batch insert' (не уверен, что это правильное имя.) В любом случае в документации говорится, что это быстро. – Marichyasana

Смежные вопросы