Thread: пропали записи
Привет.
Помогите исправить ошибку, пропали некоторые записи в некоторых таблицах при запросе 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% свободно.
Помогите исправить ошибку, пропали некоторые записи в некоторых таблицах при запросе 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
Понедельник, 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