Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Administration
Administration Forum d'entraide sur l'administration de PostgreSQL : utilisateurs, privilèges, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2011, 10h19   #1
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Par défaut Migration MySQL -> pgSQL et problèmes de séquence

Salux !

J'ai un petit problème de séquences sur une BDD qui fonctionnait sur MySQL et que j'ai migrée sur pg. En effet, les données ont bien été recopiées, mais les séquences sont restées à 1 (ex. j'insère les données 1, 2, 3, 4, 5 lors de la migration, puis j'essaie d'ajouter un élément -> erreur car la séquence génère 1).

J'ai trouvé le moyen de procéder avec ALTER SEQUENCE x RESTART WITH y, mais c'est assez long puisque je dois le faire sur chaque table. Est-ce qu'il y a un moyen d'automatiser et de demander à pg de le faire sur chaque séquence ?
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 11h38   #2
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 483
Points : 1 483
Sous Postgresql tu as le type de données SERIAL qui fait l'équivalent du AUTO INCREMENT de MySQL.
A la création de la table avec la colonne de type SERIAL, une séquence est implicitement créée pour cette colonne.
Ainsi, à chaque ligne insérée, la ligne récupère automatiquement l'id suivant et incrémente la séquence, sans que tu ais besoin de forcer toi-même la modification du numéro de séquence avec un nextval ou un trigger after insert
Voir la doc officielle de Postgresql, paragraphe 8.1.4
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h57.


 
 
 
 
Partenaires

Hébergement Web