clé unique avec postgres

Répondre
nonoche
le 31/05/2005 à 17:07
nonoche
Mister postgres n'a pas comme option auto_increment ce qui fait que je suis obligé de passer par une sequence qui incremente le champ que je veux.
Mon problème c'est lors d'une insertion via une commande php quand je fait ca:


"INSERT INTO jl_evenement VALUES ('','$id_joueur_jl','$grille','$now');"


je laisse le premier champ vide pour qu'il execute la sequence car lors de la creation de la table jg_joueur j'ai fait ceci:


CREATE TABLE "jg_joueur" (
"id_joueur_jg" varchar(100) DEFAULT nextval('jg_joueur_id_joueur_seq'::text) NOT NULL,


avec comme sequence:


CREATE SEQUENCE "jg_joueur_id_joueur_seq" start 1 increment 1 maxvalue 9223372036854775807 minvalue 1 cache 1;


Le problème c'est si je laisse le premier champ vide, il m'inscrit un champ vide dans la table.

Quelqu'un pourrait-il m'aider?
Merci
LA GLOBULE
le 31/05/2005 à 17:23
LA GLOBULE
Un idée : utiliser une table qui te servira de générateur d'id.

Tu fais une table contenant autant d'éléments que ta base de tables (chaque champs correspondant à une table).
Chaque champs de cette table contiendra la valeur du dernier id utilisé pour telle ou telle table.

Quand tu veux insérer un truc dans une table, tu regarde cette table, et tu releves la valeur du champs.
Tu fais un +1 sur ce champs, et ce nombre, ben c'est ton id (et tu mets aussi à jour cette table d'id en cas d'insert).
nonoche
le 31/05/2005 à 17:25
nonoche
C'est une bête d'idée à laquelle je n'avais pas penser. le problème c'est que ca me fait faire une requète de plus. Si jamais personne ne trouve las olution à mon rpoblème je ferais comme ca;)
LA GLOBULE
le 31/05/2005 à 17:26
LA GLOBULE
Arf, j'ai répondu à coté la.

Tu sais faire l'auto_increment avec "ta sequence", c'est çà ?

Si oui, ben après, j'en sais rien...
smiley
nonoche
le 31/05/2005 à 17:28
nonoche
Bah nan ton truc marche bien, c'est relou mais ca marche. L'auto incremente je l'ai fait avec la sequence mais c'est pas ca mon probleme....
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours