|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() ![]() Emmanuel Bourgerie Inscription : mai 2009 Messages : 277 ![]() |
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 ? |
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
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/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com