Mon titre est pas très clair, mais j’ai pas trouvé mieux ^^.
Mon problème :
J’ai un serveur utilisé pour faire des traitements de données, et un serveur de production qui utilise réellement ces données, il ne fait que les afficher.
Selon les traitements, la valeur d’auto-increment peut être très différente (plus élevée) que sur le serveur de production.
Ce que j’aimerais, c’est que le serveur de production utilise sa propre valeur d’incrément pour la clé primaire, et pas la valeur passée par le dump du serveur de traitement.
La question : comment faire pour ne pas dumper la colonne “id” du serveur de traitement ?
J’espère que j’ai été assez clair, sinon posez moi des questions
Je pense pas que tu puisses omettre une colonne avec mysqldump.
Tu peux pas le faire en deux temps ?
Sur le serveur de calcul : SELECT tous_tes_champs_sans_l’identifiant FROM ta_table INTO OUTFILE ‘backup.txt’;
puis sur le serveur de prod : LOAD DATA INFILE INTO TABLE ta_table (tous_tes_champs_sans_l’identifiant)
Tient, ces problèmes de clef primaires sont récurrrents.
bref, vu que ton serveur prod ne fait qu’afficher, il ne vaudrait pas mieux conserver cet id au contraire, et faire en sorte qu’il n’utilise pas de valeur d’incrément?
Je pensais que le serveur de traitement était la “référence”, et que donc on pouvait faire un annulle et remplace de toutes les données de traitement sur la prod, mais ce n’est pas possible?
Est-ce qu’il n’y a pas des fonctionnalités de Synchro ou réplication dans ces cas là?
Le truc c’est que s’il y a eu des erreurs de traitement on va regénérer les données. Effectivement les valeurs des ID seraient plus grandes, mais je trouve pas ça très sûr.
SELECT CONCAT(‘UPDATE XXX SET …’) AS “query”
FROM XXX
Par contre, le CONCAT n’est pas dispo partout, donc faut utiliser || (opérateur de concaténation “standard”) mais pas sous SQLServer, où c’est “+” quand il le veut bien…
Je veux faire des insert pas des UPDATE
Mais en fait j’imagine que c’est la même chose
Le site web (sur le serveur de production) doit afficher des graphiques générés à partir de données
ces données sont récupérées de plusieurs endroit différents par le serveur de traitement. Celui-ci normalise les données avant de les envoyer au serveur qui va les afficher.
Mais cmme je vois ça, j’ai l’impression que le plus simple est d’utiliser sed, vu qu’il n’y a pas d’option mysql qui fasse ce que je veux.