La FAQ de PostgreSQLConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 51, dernière mise à jour : 8 juillet 2009 

 
OuvrirSommaireSyntaxe SQL et structure de donnéesNombres

Considerons la table :

 
Sélectionnez

CREATE TABLE test ( idauto SERIAL, monchamp TEXT, CONSTRAINT pk_idauto PRIMARY KEY (idauto));

Pour faire un INSERT il suffit d'utiliser le mot clef DEFAULT :

 
Sélectionnez

INSERT INTO test VALUES (default,'mon texte');

DEFAULT appelera automatiquement la valeur par defaut, dans le cas d'un SERIAL, elle appelera la fonction nextval

Créé le 2005-09-09  par Damien Griessinger (HpAlpha)

On a une table (ma_table) qui possede une clef primaire de type INT4 (mon_id)

 
Sélectionnez

SELECT * FROM ma_table;
mon_id
--------
1
2
4
5
9

Pour gerer les id avec une sequence, il faut recuperer la valeur maximum des id de la table

 
Sélectionnez

SELECT max(mon_id) FROM ma_table;
9

On crée la sequence

 
Sélectionnez

CREATE SEQUENCE ma_sequence;

et on modifie la prochaine valeur a generer (9+1) donc 10

 
Sélectionnez

ALTER SEQUENCE ma_sequence RESTART WITH 10;

ensuite on indique que la valeur par defaut de mon_id est la sequence :

 
Sélectionnez

ALTER TABLE ma_table ALTER COLUMN mon_id SET DEFAULT nextval('ma_sequence');

nota: par convention, la sequence devrait s'appeler ma_table_mon_id_seq

Créé le 2005-08-13  par Damien Griessinger (HpAlpha)
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.