Страница 1 из 1

Удаление данных

Добавлено: 2006-12-22 9:35:15
Agronom
Подскажите как запросом удалить из БД данные за определенный период? Есть БД биллинга на PostgreSQL, которая начинается с 2004 года. Нужно одним махом убить все данные с 2004 по 2006 год, оставить только 2006 год. А как это сделать? Там больше 200 миллионов записей :shock:

Добавлено: 2006-12-22 10:58:10
Alex Keda

Код: Выделить всё

WHERE коолонка_со_временем LIKE 'формат даты %'
например... примерно так.
=======
бэкап сделай, до того как дропать

Добавлено: 2006-12-22 11:08:21
Agronom
примерно так?

Код: Выделить всё

DROP * FROM table_name WHERE date LIKE 'date < 01/01/06';
и так для всех таблиц? :shock:
У меня их в базе целая толпа!

Добавлено: 2006-12-22 11:11:57
Alex Keda
f/ постгресс... незнаю даже...

Добавлено: 2007-01-09 12:12:08
Agronom
удалил данные во всех таблицах с помощью команды:

Код: Выделить всё

DELETE FROM table_name WHERE date_period < '01.01.06';
Но размер БД не уменьшился (только дамп сократился в 2 раза), такое ощущение, что остались строки но они пустые. Как можно зачистить полностью БД? VACUUM поможет в этом?

Добавлено: 2007-01-09 14:14:12
Alex Keda
да

Добавлено: 2007-01-09 14:40:58
Agronom
не помогло - освободилось всего несколько килобайт