Thread: пропали записи

пропали записи

From
Денис Тучков
Date:
Привет. 


Помогите исправить ошибку, пропали некоторые записи в  некоторых таблицах при запросе 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 FROM pg_class WHERE relname = 'users';
name | oid | size_mb | count

-------+----------+---------+-------
users | 40775452 | 0 | 3655

Re: [pgsql-ru-general] пропали записи

From
Alexey Vasiliev
Date:
Понедельник, 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