Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 25/04/2006, 10h40   #1
Membre à l'essai
 
Inscription : mars 2005
Messages : 76
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 76
Points : 20
Points : 20
Par défaut PGSQL et les num auto

Bonjour,

je me lance dans cet SGBD pour essayer d'avoir le max de performances avec ASP.

Je viens d'importer une BD Access et je remarque qu'il n'y a pas de numéro auto !!

Est-ce moi qui ai loupé qq chose ou alors, ce n'est pas inclus ??

Merci de vos lumieres,
Mike
Tragnee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 10h49   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

sous PotsgreSQL, les champs auto-incrémentés sont gérés par des séquences ; pour plus d'infos, voir http://dgriessinger.developpez.com/p...sql/sequences/
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 15h34   #3
Invité de passage
 
Inscription : octobre 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 6
Points : 3
Points : 3
pour créer un champ auto-incrémenté, il suffit d'écrire par exemple:

Code :
1
2
 CREATE TABLE Tbidon (<blockquote> idAutoIncremente serial,
</blockquote>);
le type serial créé automatiquement une séquence d'incrément égal à 1, assure l'unicité de la valeur du champ et créé un index

petit lien utile :
http://asi.insa-rouen.fr/projets/FAQ/PostgreSQLFAQ/#_4,16,1_)_Comment
Eldarion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 00h11   #4
Membre habitué
 
Avatar de mamiberkof
 
Inscription : avril 2005
Messages : 286
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2005
Messages : 286
Points : 126
Points : 126
Envoyer un message via MSN à mamiberkof
j'ai essayé Alter table nom_table Alter column type serial
mais ça marche pas,il me dit que le type serial n'existe pas

une idée ,comment modifier le type de la colonne avec serial ?
__________________
¤-------------------------------------------------------------------
|لا تبكي يا بُـنية، فإن الله مانع أباك...
| Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
| L'effet developpez.com : ->geek
| It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
¤-------------------------------------------------------------------
mamiberkof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 23h01   #5
C_C
Membre du Club
 
Inscription : novembre 2005
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 139
Points : 55
Points : 55
Envoyer un message via MSN à C_C
Salut,

une fois la table créée il est impossible de modifier le type d'une colonne pour serial.
Le type serial doit être choisi lors de la création de la table.

Je connais 2 solutions pour résoudre ce problème:

1 - Tu fais drop de la table et tu crées une autre et lá tu peux choisir le type serial pour ta clé primaire. Pour ça tu peux gérer le script de création de la table, changer dans le script le type de la clé primaire pour serial et executer ce nouveau script.

2 - Si l'élimination de la table te pose des problèmes il faut que tu crées une séquence puis tu fais un alter table de la table et tu met comme valeur par défaut de la clé primaire ceci:
Code :
NEXTVAL('public."<nom_de_la_séquence>"'::text)
C_C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2006, 02h26   #6
Membre habitué
 
Avatar de mamiberkof
 
Inscription : avril 2005
Messages : 286
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Maroc

Informations forums :
Inscription : avril 2005
Messages : 286
Points : 126
Points : 126
Envoyer un message via MSN à mamiberkof
ok merci je vais essayé, mais la sequence je le cree simplement
Code :
CREATE sequence namtable_namecolumn_seq
? il faut qu'il soit avec ce nom imperativement, ou c'est juste de la bonne habitude programmation ?
__________________
¤-------------------------------------------------------------------
|لا تبكي يا بُـنية، فإن الله مانع أباك...
| Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
| L'effet developpez.com : ->geek
| It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
¤-------------------------------------------------------------------
mamiberkof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2006, 17h04   #7
C_C
Membre du Club
 
Inscription : novembre 2005
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 139
Points : 55
Points : 55
Envoyer un message via MSN à C_C
C'est juste une bonne habitude de programmation.
C_C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 10h39   #8
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Citation:
Envoyé par C_C
2 - Si l'élimination de la table te pose des problèmes il faut que tu crées une séquence puis tu fais un alter table de la table et tu met comme valeur par défaut de la clé primaire ceci:
Code :
NEXTVAL('public."<nom_de_la_séquence>"'::text)
Attention au piège classique : il ne faut pas oublier de donner les droits d'utilisation de SELECT et UPDATE sur la sequence aux utilisateurs habilités à faire des INSERT sur la table, et qui auront donc besoin d'accéder implicitement à la valeur de la séquence et de la modifier.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather 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 02h32.


 
 
 
 
Partenaires

Hébergement Web