Так случилось, что образовалась в одной из postgresql-ных баз табличка, в которой было две абсолютно одинаковые строки. И еще и без первичного ключа. Забавно то, что pgadmin3 открывает такую табличку только на чтение, потому что нет первичного ключа, соответственно удалить лишнюю строчку там, явно указав ее мышкой, не выходит, а drop-нуть с помощью psql тоже трудно, ведь строчки одинаковые, и любой WHERE их обе зацепляет и отдает DROP'у. В общем, вилы ;) Решение, сильно напоминающее школьно-универский "пузырьковый метод сортировки", подсмотрено тут:
CREATE TABLE foo AS (SELECT DISTINCT * FROM bar);DROP TABLE bar;ALTER TABLE foo RENAME TO bar;
где foo - новая таблица, bar - таблица с дубликатами. Оператор SELECT DISTINCT вычленяет только уникальные строки.
Спасибо бро!
ОтветитьУдалить