Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 11/01/2008, 10h36   #1
J1
Membre actif
 
Inscription : mai 2004
Messages : 225
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 225
Points : 195
Points : 195
Par défaut Champ auto_decrement ?

Bonjour,

est-il possible en MySQL 4.1 de créer un champ auto_increment qui ne s'incrémente pas, mais au contraire se décrémente (-1 à chaque nouvel enregistrement) ?
Je sais que c'est possible sous Access, mais je ne trouve pas cette option sous MySQL. En outre, comme je suis en MySQL 4.1, impossible de simuler ce comportement par trigger, j'aurais donc vraiment besoin d'une option native MySQL.

Merci d'avance pour vos lumières.
J1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 21h53   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
A quoi ça servirait ???
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 17h51   #3
J1
Membre actif
 
Inscription : mai 2004
Messages : 225
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 225
Points : 195
Points : 195
Ce serait long à expliquer. Pour faire très court, disons que c'est lié à une problématique de synchronisation entre bases de données, dont les ID ne doivent pas se chevaucher. L'objectif est donc que les ID d'une des bases s'incrémentent pendant que ceux de l'autre base se décrémentent.

Comme je le disais, certains SGBD le permettent mais je n'ai pas trouvé d'option identique sous MySQL. Pourrais-tu me confirmer que MySQL ne le permet pas, s'il-te-plaît ?
J1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 18h16   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par J1 Voir le message
Pourrais-tu me confirmer que MySQL ne le permet pas, s'il-te-plaît ?
Franchement, je n'en sais rien : je ne me suis jamais posé de question aussi tordue. Je crois que tu me confonds avec la doc .

Si ça n'existe pas, tu peux par contre modifier la valeur courante de l'auto_increment (ALTER TABLE... AUTO_INCREMENT = ...). Tu pourrais ainsi avoir une table qui prend les ID de 1 à 99 999 et l'autre à partir de 100 000.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2008, 12h45   #5
J1
Membre actif
 
Inscription : mai 2004
Messages : 225
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 225
Points : 195
Points : 195
Citation:
Envoyé par Antoun Voir le message
Franchement, je n'en sais rien : je ne me suis jamais posé de question aussi tordue. Je crois que tu me confonds avec la doc .
Non, en fait, c'est justement parce que j'ai déjà consulté la doc (et écumé Google) sans y trouver de solution que je te pose la question !

Mais, après tout, il est possible que MySQL ne permette tout simplement pas l'"auto decrement".

Citation:
Envoyé par Antoun Voir le message
Si ça n'existe pas, tu peux par contre modifier la valeur courante de l'auto_increment (ALTER TABLE... AUTO_INCREMENT = ...). Tu pourrais ainsi avoir une table qui prend les ID de 1 à 99 999 et l'autre à partir de 100 000.
Oui, je sais, mais sans rentrer dans de fastidieux détails, disons qu'un auto increment d'un côté et un "auto decrement" de l'autre résoudraient mon problème, là où deux auto increment "décalés" n'y parviendront malheureusement pas.

Bon, de toute façon, entre mon premier message de janvier et maintenant, le projet de synchronisation sur lequel je travaille a pris une autre direction.

Mais je dois avouer que, pour ma culture personnelle, j'aurais bien voulu savoir si l'auto decrement existait sous MySQL. C'est pourquoi je n'ai pas "delesté" le topic.

En tout cas, merci pour ton aide, Antoun.
J1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h43.


 
 
 
 
Partenaires

Hébergement Web