Besoin d'aide pour upgrade une table d'une DB avec une partie des champs d'un au
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012
-
27 mars 2012 à 10:26
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012
-
19 avril 2012 à 08:58
Bonjour.
pour mon travail, mais surtout mon plaisir, je developpe un jeu.
j'emploie navicat 9.1.8 pro pour mes DB
donc pour ce jeu j'emploie 2 DB differentes: Login et Serveur.
Dans la DB Login je possède une table 'joueur' et dans la DB serveur je possède la meme table portant le meme nom et ayant les memes champs.
Quand un joueur s'inscrit pour jouer, il entre ses données dans la table 'joueur' de la DB Login, où ses donnees personelles (autre table) sont cryptées.
mais pour jouer, l'identification se fait dans la table 'joueur' de la DB Serveur.
mon probleme est le suivant:
comment, par un query, upgrader automatiquement les nouveaux joueurs inscrits dans la table 'joueur' de la DB Login pour les transferer dans la table 'joueur' de la DB serveur?
car pour le moment je le fais manuellement chaque matin via un systeme "insert".
Un code ou exemple concret serait le bienvenu
Merci d'avance
A voir également:
Besoin d'aide pour upgrade une table d'une DB avec une partie des champs d'un au
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 29 mars 2012 à 11:20
Salut,
quelle est l'utilité de ta première BDD (Login) ?
Perso je vois pas masses d'avantages à cette pratique, là comac, et faire le transfert de cette base vers l'autre en auto les rendraient caduques.
Ceci mis à part, je pense tu peux utiliser un trigger du genre :
CREATE TRIGGER Login.monTrigger AFTER INSERT
ON Login.Joueurs FOR EACH ROW
BEGIN
-- ici j'insère de l'autre côté
END;
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012 1 avril 2012 à 11:51
le jeu , au départ est un GPl, développé par d'autres, mais je ne t'apprendrai rien en te disant que les jeux évoluent, parfois au détriment du bon sens.
donc j'emploie leur bases (au départ une seule DB, maintenant 3)mais je tente de réunir toutes les évolutions du jeu en 1 seul
pour le transfer de l'un vers l'autre:
dans le login tout est mis a zéro (c imagé bien sur)
dans le serveur, tout est mis de la manière dont le joueur évolue dans le jeu.
réunir le tout en une seule DB représenterait un tel travail que ce serait l'équivalent de tout réécrire, et je m'en sent pas le courage.
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012 18 avril 2012 à 09:53
Sur base de ce que j'en ai compris voila ce à quoi je pense devoir arriver:
CREATE TRIGGER Login.upgrade_accounts AFTER INSERT
ON Login.joueurs FOR EACH ROW
BEGIN
UPDATE Serveur.joueurs as SELECT * from Login.joueurs
END;
N'etant pas, et de loin, un pro en gestion DB, je suis maintenant confronté à un autre problème: dans quoi dois-je mettre ce code? c'est un query? une fonction?
Si quelqu'un peut jeter un oeil ce serait sympa.
Merci d'avance
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 18 avril 2012 à 10:07
Re,
dans un TRIGGER c'est du PL comme dans une procédure stockée ;)
A noter qu'il est possible que tu doives en faire 3, une pour chaque action (AFTER INSERT, AFTER UPDATE, AFTER DELETE). Sinon ça fait bien longtemps que j'ai pas eu à faire du PL/SQL, donc je pense pas pouvoir bien t'aider. Tu devrais trouver les info nécessaires sur le net (google, tuto du ring CS, sdz ...).
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012 18 avril 2012 à 11:35
bon il y avait une solution toute simple, mais nul n'est prophète en son pays:
donc via la "data synchronisation" cela peut se faire avec multichoix.
le seul stress c'est que je n'ai pas encore trouvé comment l'automatiser.
J'ai bien un .npd de créé, qui fait ce que je demande, mais je ne parviens pas a le scheduled
donc j'ai avancé mais je dois toujours le faire manuellement
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 18 avril 2012 à 16:29
Je ne connais pas ce que tu appelles "data synchronisation" (en-dehors du sens des termes eux-mêmes). Pour ce qui est de l'automatisation il y a peut-être moyen de le faire via le scheduler système ("tâches planifiées") ? Par contre en faisant comac tu auras un fonctionnement de type "moulinette" (agit toutes les X minutes/heures), et non une propagation des données en temps réel comme peut le faire un TRIGGER.
Baihrava
Messages postés6Date d'inscriptionmardi 27 mars 2012StatutMembreDernière intervention19 avril 2012 19 avril 2012 à 08:58
le data synchronisation est un tool du navicat qui fonctionne un peu comme un datalink a choix multiple préprogrammé.
en effet, on peut le comparé à un fonctionnement de type "moulinette"(j'adore l'image )le problême étant qu'il n'apparait pas dans le systeme de type schedule.
j'ai bien regardé dans les différentes possibilités de batch, mais ca 'couaque' un peu.
Par contre j'ai trouvé où placer le trigger dans le navicat, je test et tiens au courant.