Маленькая загадка для любителей PostgreSQL

20 июня 2018

Интересный баг нашел в своем проекте. Загадаю загадку, попробуйте отгадать.


CREATE TABLE cats (
    cat_id bigint,
    name varchar(128) NOT NULL,
    PRIMARY KEY (cat_id)
);

INSERT INTO cats VALUES (1, 'Tihon'), (2, 'Marfa');

SELECT * FROM cats;
 cat_id | name
--------+-------
      1 | Tihon
      2 | Marfa
(2 rows)

-- do some magic

SELECT * FROM cats;
 cat_id | name
--------+--------
      1 | Tihon
      2 | Marfa
      1 | Tihon2
(3 rows)

В таблице получилось дублирование cat_id, при том, что это primary key. Как такое возможно?

Посмотреть ответ

comments powered by Disqus