Bah, j'avais fini ma journée, je suis parti du boulot... et je rentre à peine chez moi, là
En fait, ton type serial, tu n'es pas obligé de le gérer dans les INSERT. Pour prendre un exemple simple : une table avec un champ serial et un champ texte
1 2 3 4 5
| CREATE TABLE matable
(
id serial,
libelle text
) |
Pour l'insertion, le plus simple, c'est d'omettre le champ id et de laisser la base de données se débrouiller avec :
INSERT INTO matable (libelle) VALUES ('le libellé')
Maintenant, si tu veux absolument gérer le serial dans ta requête INSERT, il faut faire appel à la séquence contenant l'auto-incrément. Le nom de la séquence respecte toujours le schéma suivant : nomtable_nomchamp_seq (dans mon exemple, matable_id_seq). Et pour s'en servir, il faut utiliser la méthode nextval() pour récupérer sa valeur. Ce qui donne :
INSERT INTO matable (id, libelle) VALUES (nextval(matable_id_seq), 'le libellé')
Partager