Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Strano errore in PostgreSQL Database
martedì 03 febbraio 2009 - 13.06
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
.nethell
Profilo
| Newbie
10
messaggi | Data Invio:
mar 3 feb 2009 - 13:06
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
8.814
messaggi | Data Invio:
mar 3 feb 2009 - 13:30
>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
10
messaggi | Data Invio:
mar 3 feb 2009 - 15:29
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
8.814
messaggi | Data Invio:
mar 3 feb 2009 - 15:42
>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
10
messaggi | Data Invio:
mar 3 feb 2009 - 15:56
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
8.814
messaggi | Data Invio:
mar 3 feb 2009 - 15:59
>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
10
messaggi | Data Invio:
mar 3 feb 2009 - 16:04
Ho provato, ma il risultato non cambia
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 3 feb 2009 - 16:07
>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
10
messaggi | Data Invio:
mar 3 feb 2009 - 16:19
>Ci sono altre operazioni che fai? trigger?
No, la query la eseguo da pgAdminIII e non faccio nessun trigger
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 3 feb 2009 - 16:37
>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
10
messaggi | Data Invio:
mar 3 feb 2009 - 23:02
Va bene, contatterò il supporto di PostgreSQL. Grazie comunque per il tuo aiuto
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 4 feb 2009 - 00:09
>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
Torna su
Stanze Forum
Elenco Threads
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 !