Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu

Zdravím, jsem poněkud zmaten chováním postgresu ("PostgreSQL 10.15 (Debian 10.15-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit")

Mám definovanou tabulku "tabulka"
Kód: [Vybrat]
CREATE TABLE public.tabulka (
    id bigint NOT NULL
);
ALTER TABLE ONLY public.tabulka
    ADD CONSTRAINT tabulka_pkey PRIMARY KEY (id);
Pokouším se vložit nový řádek do tabulky:
Kód: [Vybrat]
INSERT INTO "tabulka"  ("id") values (576414935)
Nacež dostávám odpověd
Citace
ERROR:  duplicate key value violates unique constraint "tabulka_pkey"
DETAIL:  Key (id)=(576414935) already exists.
SQL state: 23505
Takže se pokouším zmíněná data podle toho klíče najít:
Kód: [Vybrat]
select * from "tabulka" where "id" = 576414935
Jenže výsledkem je, že postgres nic nenajde. Čím by toto mohlo být?


a6b

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #1 kdy: 17. 09. 2022, 22:55:22 »
nehybal nekdo s pocitadlem pro unikatni index? vyhledej si tu chybu 23505, na to tema jsou ruzne odpovedi.

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #2 kdy: 17. 09. 2022, 22:59:05 »
Provádíte oba příkazy (INSERT i SELECT) ve stejné transakci? Můžete mít před tím INSERTem ve stejné transakci jiné vložení záznamu se stejným ID. A pokud se pak díváte SELECTem z jiné transakce, ten záznam tam ještě nemusí být (záleží na izolaci transakcí).

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #3 kdy: 17. 09. 2022, 23:11:00 »
Provádíte oba příkazy (INSERT i SELECT) ve stejné transakci? Můžete mít před tím INSERTem ve stejné transakci jiné vložení záznamu se stejným ID. A pokud se pak díváte SELECTem z jiné transakce, ten záznam tam ještě nemusí být (záleží na izolaci transakcí).
Ano, ve stejné transakci a je to i jediná transakce. Dokonce jsem primární klíč zrušil a znovu vytvořil. Ovšem pořád se stejnou chybou.

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #4 kdy: 17. 09. 2022, 23:17:54 »
nehybal nekdo s pocitadlem pro unikatni index? vyhledej si tu chybu 23505, na to tema jsou ruzne odpovedi.
Nehýbal, pro jistotu jsem klíč i odstranil a vytvořil znova. Se stejným efektem. Databáze byla i korektne zastavena a znovu spuštěna


Logik

  • *****
  • 995
    • Zobrazit profil
    • E-mail
Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #5 kdy: 18. 09. 2022, 00:38:52 »
Ahoj,
1) Co ti přesně řekne psql, když ten insert vložíš po tomto příkazu?
Kód: [Vybrat]
\set VERBOSITY verbose
2) Když odstraníš ten primary key, jde pak daná hodnota vložit? Pokud ano, jde pak znovu vytvořit primary key?

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #6 kdy: 18. 09. 2022, 08:48:30 »
Chyba byla mezi klavesnicí a židlí a postgres se pořád chová korektně.

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #7 kdy: 18. 09. 2022, 09:17:17 »
Chyba byla mezi klavesnicí a židlí a postgres se pořád chová korektně.
Můžete nám prozradit, čím to bylo? Pokud opravdu v obou příkazech byla stejná ID a stejné tabulky, vypadá to dost zvláštně.

a6b

Re:Postgres:Error pri vložení id (duplikace), při selectu nic nenajdu
« Odpověď #8 kdy: 18. 09. 2022, 09:35:03 »
Chyba byla mezi klavesnicí a židlí a postgres se pořád chová korektně.
Můžete nám prozradit, čím to bylo? Pokud opravdu v obou příkazech byla stejná ID a stejné tabulky, vypadá to dost zvláštně.

to by me teda taky zajimalo?!