PostgreSQL значение id типа SERIAL увеличивается не смотря на CONSTRAINT
Добавлено: 2015-10-27 13:41:47
Приветствую читатели.
Видно что в поле id добавлено всего 2 записи, но при этом значение id типа SERIAL увеличилось не смотря на сработавший CONSTRAINT.
Вот хочу для себя понять, как это работает. И как правильней всего запретить id увеличиваться при срабатывании правил CONSTRAINT.
Код: Выделить всё
test=# CREATE TABLE TEST (
test(# id serial PRIMARY KEY,
test(# description varchar NOT NULL UNIQUE
test(# );
CREATE TABLE
test=# INSERT INTO test (description) VALUES ('1');
INSERT 0 1
test=# SELECT * FROM test;
id | description
----+-------------
1 | 1
(1 строка)
test=# INSERT INTO test (description) VALUES ('1');
ERROR: duplicate key value violates unique constraint "test_description_key"
ПОДРОБНОСТИ: Key (description)=(1) already exists.
test=# INSERT INTO test (description) VALUES ('2');
INSERT 0 1
test=# SELECT * FROM test;
id | description
----+-------------
1 | 1
3 | 2
(2 строки)
test=#
Вот хочу для себя понять, как это работает. И как правильней всего запретить id увеличиваться при срабатывании правил CONSTRAINT.