Задача:
Есть некая таблица, в которой 8 строк, и последние 4 полностью повторяют первые 4. Необходимо удалить строки-дубликаты.
Решение:
Использовать LIMIT в DELETE Postgres не позволяет (хотя вроде бы в какой-то другой СУБД я такую возможность встречал), но можно использовать внутренний идентификатор строк CTID, который позволяет различать 2 идентичные строки. В моем случае следующий запрос удаляет последние 4 строки:
DELETE FROM r_administrative_level WHERE CTID IN('(0,5)','(0,6)','(0,7)','(0,8)')
Комментариев нет:
Отправить комментарий