# Export e import in database e violazione chiave primaria

**URL:** <https://www.ruby-forum.com/t/export-e-import-in-database-e-violazione-chiave-primaria/200868>\
**Category:** IT\
**Created:** [December 23, 2010, 2:21pm UTC](https://www.ruby-forum.com/t/export-e-import-in-database-e-violazione-chiave-primaria/200868 "2010-12-23T14:21:17Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nikuSESS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/f17d59/32.png) [@nikuSESS](https://www.ruby-forum.com/u/nikuSESS)\
**Post date:** [December 23, 2010, 2:21pm UTC](https://www.ruby-forum.com/t/export-e-import-in-database-e-violazione-chiave-primaria/200868/1 "2010-12-23T14:21:17Z")

</div>

Uso postgres come database.  
Avevo necessita’ di variare la struttura di alcune tabelle cosi’ ho  
esportato il contenuto delle tabelle presenti in file di testo  
attraverso il comando COPY di postgres.  
Ho cancellato e ricreato il database e le tabelle con la nuova  
struttura e copiato, sempre col comando COPY, il contenuto dei files  
di testo nelle tabelle.  
Sembrava tutto ok quando, attraverso l’applicazione rails, ho tentato  
di aggiungere un nuovo record.  
Il risultato e’: duplicate key value violates unique constraint  
"sectors\_pkey Dettaglio: Key (id)=(1) already exists.  
Ho sbagliato metodologia nell’export e import del database?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 24, 2010, 1:01pm UTC](https://www.ruby-forum.com/t/export-e-import-in-database-e-violazione-chiave-primaria/200868/2 "2010-12-24T13:01:01Z")

</div>

2010/12/23 Duilio R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > Il risultato e’: duplicate key value violates unique constraint  
> > "sectors\_pkey Dettaglio: Key (id)=(1) already exists.
> 
> Problema comune con PostgreSQL.
> 
> Per risolvere dai un occhiata a:
> 
> [Fixing Sequences - PostgreSQL wiki](http://wiki.postgresql.org/wiki/Fixing%5FSequences)

A dire il vero non ho capito bene quel codice, ho risolto semplicemente  
facendo:  
select setval(‘table\_id\_seq’, (select max(id) from table)+1);  
Ho l’impressione che se non avessi droppato anche il db ma solo le  
tabelle non sarei incorso in questo problema.

> > Ho sbagliato metodologia nell’export e import del database?
> 
> Cosa usi per il backup?  
> (pg\_dump usa di default la direttiva COPY)

Si uso pg\_dump.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 23, 2010, 8:29pm UTC](https://www.ruby-forum.com/t/export-e-import-in-database-e-violazione-chiave-primaria/200868/3 "2010-12-23T20:29:50Z")

</div>

Msan M. wrote in post #970290:

> Uso postgres come database.  
> Avevo necessita’ di variare la struttura di alcune tabelle cosi’ ho  
> esportato il contenuto delle tabelle presenti in file di testo  
> attraverso il comando COPY di postgres.  
> Ho cancellato e ricreato il database e le tabelle con la nuova  
> struttura e copiato, sempre col comando COPY, il contenuto dei files  
> di testo nelle tabelle.  
> Sembrava tutto ok quando, attraverso l’applicazione rails, ho tentato  
> di aggiungere un nuovo record.  
> Il risultato e’: duplicate key value violates unique constraint  
> "sectors\_pkey Dettaglio: Key (id)=(1) already exists.

Problema comune con PostgreSQL.

Per risolvere dai un occhiata a:

> **[Fixing Sequences - PostgreSQL wiki](https://wiki.postgresql.org/wiki/Fixing%5FSequences)**

> Ho sbagliato metodologia nell’export e import del database?

Cosa usi per il backup?  
(pg\_dump usa di default la direttiva COPY)

Backup: $ pg\_dump -U {user-name} {source\_db} -f {dumpfilename.sql}

Restore: $ psql -U {user-name} -d {desintation\_db}-f {dumpfilename.sql}

Backup tutti i db: $ pg\_dumpall \> all.sql

Restore tutti i db: $ psql -f all.sql postgres

–  
Duilio R.

> **[Home | Sinetris's viewpoints](https://sinetris.info/)**
