Понедельник, 27 апреля 2015, 17:33 +03:00 от Денис Тучков <vokchut@mail.ru>:
> Привет.
>
>
> Помогите исправить ошибку, пропали некоторые записи в некоторых таблицах при запросе SELECT возвращается результат -
"0",но при при попытке добавить строку получаю сообщение 'ERROR: duplicate key violates unique constraint
"users_username_key"'.Сбоев в работе оборудования, таких как внезапное выключение сервера и т.п., не было.
>
> ОС Linux 2.6.9-101.ELhugemem #1 SMP Thu Jul 21 17:42:00 EDT 2011 i686 i686 i386 GNU/Linux
> Версия PostgreSQL 7.4.19
> Размер базы 31ГБ, дисковое пространство более 50% свободно.
>
>
> CREATE TABLE users (
> id integer NOT NULL,
> username character varying(20) NOT NULL,
> "password" character varying(20) NOT NULL,
> reseller_id integer NOT NULL
> );
>
> # INSERT INTO users (id, username, "password", reseller_id) VALUES (28164, 'psebum', 'xxxxxx', 1);
> ERROR: duplicate key violates unique constraint "users_username_key"
> #
> # INSERT INTO users (id, username, "password", reseller_id) VALUES (33784, 'psebum7', 'xxxxxx', 1);
> INSERT 136903374 1
> #
>
> # SELECT relname AS name, relfilenode AS oid, (relpages * 8192 / (1024*1024))::int as size_mb, reltuples as count
FROMpg_class WHERE relname = 'users';
> name | oid | size_mb | count
> -------+----------+---------+-------
> users | 40775452 | 0 | 3655
>
>
Все вроде в норме, у Вас просто индекс на уникальность на поле "username", вот и ругается ("psebum" уже есть в
таблице)."\d users" даст структуру и информацию по индексам.
--
Alexey Vasiliev