Strano errore in PostgreSQL Database

martedì 03 febbraio 2009 - 13.06

.nethell Profilo | Newbie

Salve a tutti,
mi è successa una cosa strana utilizzando il mio database PostgreSQL. Se eseguo una normalissima INSERT più volte, il più delle volte la esegue con successo, ma qualche volta mi dà "ERROR: duplicate key violates unique constraint 'prodotti _pkey'. Stato SQL: 23505 ". A cosa è può essere dovuto questo errore?

alx_81 Profilo | Guru

>Salve a tutti,
Ciao!

>mi è successa una cosa strana utilizzando il mio database PostgreSQL.
>Se eseguo una normalissima INSERT più volte, il più delle volte
>la esegue con successo, ma qualche volta mi dà "ERROR: duplicate
>key violates unique constraint 'prodotti _pkey'. Stato SQL: 23505
>". A cosa è può essere dovuto questo errore?
Sembra che tu abbia definito una primary key sulla tabella e che stia cercando di violarne il vincolo.
Non puoi inserire record con i campi definiti nella primary key uguali..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

.nethell Profilo | Newbie

Infatti non cerco di violare il vincolo, perché nel campo della PK ci metto "default" nell'INSERT, usando la seguente query: "INSERT INTO gestionale.prodotti(idarticolo,descrizione,prezzo) VALUES(default,'Maglietta',20.50)"

alx_81 Profilo | Guru

>Infatti non cerco di violare il vincolo, perché nel campo della
>PK ci metto "default" nell'INSERT, usando la seguente query:
>"INSERT INTO gestionale.prodotti(idarticolo,descrizione,prezzo)
>VALUES(default,'Maglietta',20.50)"
Il vincolo lo viola per forza, altrimenti non riceveresti l'errore.
Posta la struttura della tabella per favore, vediamo di capire cosa può succedere.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

.nethell Profilo | Newbie

La struttura della tabella "gestionale.prodotti" è la seguente:
idarticolo serial NOT NULL
descrizione text
prezzo numeric
CONSTRAINT prodotti_pkey PRIMARY KEY (idarticolo).

alx_81 Profilo | Guru

>La struttura della tabella "gestionale.prodotti" è la seguente:
> idarticolo serial NOT NULL
> descrizione text
> prezzo numeric
> CONSTRAINT prodotti_pkey PRIMARY KEY (idarticolo).
Ok, allora nella insert, prova ad omettere l'idarticolo, inserisci solo gli altri campi.


--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

.nethell Profilo | Newbie

Ho provato, ma il risultato non cambia

alx_81 Profilo | Guru

>Ho provato, ma il risultato non cambia
proprio strano. Il serial dovrebbe darti la sicurezza di un autoincrementante.. e quindi il vincolo di primary key dovrebbe essere sempre rispettato.
Ci sono altre operazioni che fai? trigger?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

.nethell Profilo | Newbie

>Ci sono altre operazioni che fai? trigger?
No, la query la eseguo da pgAdminIII e non faccio nessun trigger

alx_81 Profilo | Guru

>No, la query la eseguo da pgAdminIII e non faccio nessun trigger
Allora non è un comportamento corretto.
Se tu fai n insert con serial, postgre dovrebbe gestirne la ripetizione, senza dare problemi.
Prova a contattare il loro supporto, perchè a me non è mai capitato..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

.nethell Profilo | Newbie

Va bene, contatterò il supporto di PostgreSQL. Grazie comunque per il tuo aiuto

alx_81 Profilo | Guru

>Va bene, contatterò il supporto di PostgreSQL. Grazie comunque
>per il tuo aiuto
Figurati, purtroppo non ho fatto nulla

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5