asyncee / fias2pgsql

Скрипты для импорта ФИАС в Postgresql
64 stars 21 forks source link

ALTER TABLE addrobj ADD CONSTRAINT addrobj_pkey PRIMARY KEY(aoguid); #12

Open sergpalm opened 4 years ago

sergpalm commented 4 years ago

ALTER TABLE addrobj ADD CONSTRAINT addrobj_pkey PRIMARY KEY(aoguid); такой запрос в принципе не может быть выполнен потому что в поле aoguid встречаются дублирующие записи.

Какие все таки ключи правильные??

ruocogito commented 3 years ago

Загрузил 3 региона данным скриптом. Увидел, что есть куча дубликатов по auguid, чего по идее не должно быть. В итоге выяснилось, что всё дело в этой строчке: DELETE FROM addrobj WHERE livestatus != 1 AND currstatus != 0; в indexes.sql. Все импортированные записи имели нулевой currstatus. Поэтому скрипт indexes.sql не удалил ни одного дубля. Ещё есть actstatus и для всех записей livestatus=actstatus. В итоге исправляем выше обозначенную строчку на DELETE FROM addrobj WHERE livestatus != 1 AND actstatus != 1; и всё загружается без дублей, ключи создаются корректно.