GNT sans publicité, site mobile, fonctionnalitées exclusives...

[Bruit][Mysl] L'identifiant automatique

Le
Roumégou Eric
Bonjour,

du bruit mais pour ceux qui comme moi ont choisi mySQL comme sgbd de
prédilection

J'utilise pour la plupart de mes tables un identifiant technique en
autoincrement.
Après une création (insert) on a souvent besoin de récupérer l'id, donc
un Select last_insert_id() nous permet de récupérer ceci sans pb.

Normalement j'ai ma clé technique (auto increment) et la clé
externe(ref du client). En l'absence de cette dernière, je dois lui en
générer une par un algo quelconque (car cette clé est aussi obligatoire
ds mon systeme) , voire reproduire ma clé primaire dans cette zone.

D'où la necessite de refaire un update après mon insert et avoir
récupéré ma clé primaire (select last-insert_id())

N'y aurait-il pas un moyen magique de spécifier dès l'ordre insert que
l'on veut dupliquer l'id primaire ?

en écrivant ce message, je me suis dit que je n'avais jamais testé un
truc simple

insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',last_insert_id())

Hélas, le last_insert_id() correspond (logique) à ma précédente
insertion.

Donc un truc ??

je viens de repotasser le site mysql, mais je doute un peu que cela
soit possible.

Merci de vos réponses

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Adrien A.
Le #24197421
On 24 jan, 08:26, Roumégou Eric
Bonjour,

du bruit mais pour ceux qui comme moi ont choisi mySQL comme sgbd de
prédilection ...

J'utilise pour la plupart de mes tables un identifiant technique en
autoincrement.
Après une création (insert) on a souvent besoin de récupérer l'id , donc
un Select last_insert_id() nous permet de récupérer ceci sans pb.

Normalement j'ai ma clé technique (auto increment) et la clé
externe(ref du client). En l'absence de cette dernière, je dois lui en
générer une par un algo quelconque (car cette clé est aussi obligat oire
ds mon systeme) , voire reproduire ma clé primaire dans cette zone.

D'où la necessite de refaire un update après mon insert et avoir
récupéré ma clé primaire (select last-insert_id())

N'y aurait-il pas un moyen magique de spécifier dès l'ordre insert qu e
l'on veut dupliquer l'id primaire ?

en écrivant ce message, je me suis dit que je n'avais jamais testé un
truc simple

insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',last_insert_id())

Hélas, le last_insert_id() correspond (logique) à ma précédente
insertion.

Donc un truc ??

je viens de repotasser le site mysql, mais je doute un peu que cela
soit possible.

Merci de vos réponses

--
Eric Roumégou
Webmaster des wtabletteshttp://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)



Salut,

Tu peux prendre le problème à l'envers en considérant le dernier id d e
la table et en l'incrémentant:
insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',(select max(id)+1 from address))

Adrien
Roumégou Eric
Le #24200381
Adrien A. a présenté l'énoncé suivant :
On 24 jan, 08:26, Roumégou Eric
Bonjour,

du bruit mais pour ceux qui comme moi ont choisi mySQL comme sgbd de
prédilection ...

J'utilise pour la plupart de mes tables un identifiant technique en
autoincrement.
Après une création (insert) on a souvent besoin de récupérer l'id, donc
un Select last_insert_id() nous permet de récupérer ceci sans pb.

Normalement j'ai ma clé technique (auto increment) et la clé
externe(ref du client). En l'absence de cette dernière, je dois lui en
générer une par un algo quelconque (car cette clé est aussi obligatoire
ds mon systeme) , voire reproduire ma clé primaire dans cette zone.

D'où la necessite de refaire un update après mon insert et avoir
récupéré ma clé primaire (select last-insert_id())

N'y aurait-il pas un moyen magique de spécifier dès l'ordre insert que
l'on veut dupliquer l'id primaire ?

en écrivant ce message, je me suis dit que je n'avais jamais testé un
truc simple

insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',last_insert_id())

Hélas, le last_insert_id() correspond (logique) à ma précédente
insertion.

Donc un truc ??

je viens de repotasser le site mysql, mais je doute un peu que cela
soit possible.

Merci de vos réponses

--
Eric Roumégou
Webmaster des wtabletteshttp://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)



Salut,

Tu peux prendre le problème à l'envers en considérant le dernier id de
la table et en l'incrémentant:
insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',(select max(id)+1 from address))

Adrien



merci de ta réponse mais on n'est pas ds de l'id auto et aucune
garantie que cela ne rentre pas en colision avec un insert fait en même
tps.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
PYT
Le #24201311
Bonjour

La solution serait d'avoir un systeme qui genere des cles pour tes
tables et ne pas se servir des autoincrement de tes tables.

Ainsi tu fais une demande d'id à ton systeme.

Et tu t'en sers lors de l'insert dans ta table

Le systeme peut etre une simple table mysql constituée uniquement d'un
autoincrement.

PYT
Bonjour,

du bruit mais pour ceux qui comme moi ont choisi mySQL comme sgbd de
prédilection ...

J'utilise pour la plupart de mes tables un identifiant technique en
autoincrement.
Après une création (insert) on a souvent besoin de récupérer l'id, donc
un Select last_insert_id() nous permet de récupérer ceci sans pb.

Normalement j'ai ma clé technique (auto increment) et la clé externe(ref
du client). En l'absence de cette dernière, je dois lui en générer une
par un algo quelconque (car cette clé est aussi obligatoire ds mon
systeme) , voire reproduire ma clé primaire dans cette zone.

D'où la necessite de refaire un update après mon insert et avoir
récupéré ma clé primaire (select last-insert_id())

N'y aurait-il pas un moyen magique de spécifier dès l'ordre insert que
l'on veut dupliquer l'id primaire ?

en écrivant ce message, je me suis dit que je n'avais jamais testé un
truc simple

insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',last_insert_id())

Hélas, le last_insert_id() correspond (logique) à ma précédente insertion.

Donc un truc ??

je viens de repotasser le site mysql, mais je doute un peu que cela soit
possible.

Merci de vos réponses

JeAn-PhI
Le #24202691
Roumégou Eric a exposé le 24/01/2012 :
Bonjour,

du bruit mais pour ceux qui comme moi ont choisi mySQL comme sgbd de
prédilection ...

J'utilise pour la plupart de mes tables un identifiant technique en
autoincrement.
Après une création (insert) on a souvent besoin de récupérer l'id, donc un
Select last_insert_id() nous permet de récupérer ceci sans pb.

Normalement j'ai ma clé technique (auto increment) et la clé externe(ref du
client). En l'absence de cette dernière, je dois lui en générer une par un
algo quelconque (car cette clé est aussi obligatoire ds mon systeme) , voire
reproduire ma clé primaire dans cette zone.

D'où la necessite de refaire un update après mon insert et avoir récupéré ma
clé primaire (select last-insert_id())

N'y aurait-il pas un moyen magique de spécifier dès l'ordre insert que l'on
veut dupliquer l'id primaire ?

en écrivant ce message, je me suis dit que je n'avais jamais testé un truc
simple

insert into adress (adr_nom,adr_prenom,ppl_id)
values('DUBOIS','RENE',last_insert_id())

Hélas, le last_insert_id() correspond (logique) à ma précédente insertion.

Donc un truc ??

je viens de repotasser le site mysql, mais je doute un peu que cela soit
possible.

Merci de vos réponses



bonjour,

utilise un trigger after insert ?

--
Cordialement JeAn-PhI
Roumégou Eric
Le #24202901
JeAn-PhI a présenté l'énoncé suivant :

bonjour,

utilise un trigger after insert ?



mysql 4.22
pas de trigger je crois
et c'est un traitement que je ne veux pas de façon systématique.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Publicité
Suivre les réponses
Poster une réponse
Anonyme