Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1351 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Cherche tut en fr sur les transactions avec MySql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cherche tut en fr sur les transactions avec MySql

n°181982
Dost67
Posté le 24-07-2002 à 18:31:24  profilanswer
 

- Dans la doc MySql c'est pour utilisateurs avertis (= pas moi) et y'a pas grand chose, jsute 2 3 trucs sur COMMIT etc.
 
- G trouvé un tut en Anglais mais yé né rien compris !
 
--> Question dans le sujet...

mood
Publicité
Posté le 24-07-2002 à 18:31:24  profilanswer
 

n°182355
Poulou
Posté le 25-07-2002 à 09:39:07  profilanswer
 

Je sais pas si tu trouveras ton bonheur dedans mais tu as de nombreux tut en francais et anglais ici :
 http://www.developpez.com/sgbd/cours.htm
Enfin dans tous les cas pour la doc MySQL il faut que tu regardes du côté de InnoDB (ou Berkeley_db). Ce sont les seules types de table à supporter les transactions sous MySQL.

n°182458
Dost67
Posté le 25-07-2002 à 11:11:35  profilanswer
 
n°184445
Betcour
Building better worlds
Posté le 27-07-2002 à 21:29:25  profilanswer
 

C'est pas très compliqué.
 
En gros tu encadres toutes tes opérations qui ont besoins d'être "protégées" par un BEGIN et un COMMIT à la fin. Si le script merde en cours de route, toutes les opérations jusqu'au BEGIN sont annulées automatiquement (tu ne te retrouve donc pas avec une transaction partielle). Si tu veux toi même annuler et que le COMMIT est pas encore fait, tu fais un ROLLBACK et ca annule tout (utile si une erreur est survenue en cours de transaction).

n°184731
Dost67
Posté le 28-07-2002 à 18:19:07  profilanswer
 

C tout :ouch: !
 
Donc si j'ai 1 INSERT et 1 DELETE à faire et que je veux que soit les 2 soient faits soit qu'aucun ne soit fait je fais :

BEGIN;
INSERT ...;
DELETE ...;
COMMIT;

Et MySql s'occupe de tout (lock, roll back auto en cas d'erreur) ?


Message édité par Dost67 le 28-07-2002 à 18:19:28
n°184732
HappyHarry
Posté le 28-07-2002 à 18:22:22  profilanswer
 

Dost67 a écrit a écrit :

C tout :ouch: !
 
Donc si j'ai 1 INSERT et 1 DELETE à faire et que je veux que soit les 2 soient faits soit qu'aucun ne soit fait je fais :

BEGIN;
INSERT ...;
DELETE ...;
COMMIT;

Et MySql s'occupe de tout (lock, roll back auto en cas d'erreur) ?




 
c'est le but !

n°184841
Betcour
Building better worlds
Posté le 28-07-2002 à 23:48:18  profilanswer
 

Tout à fait, y'a rien d'autre à faire. Tu as donc aussi l'option d'annuler toi même la transaction en cours de route avec l'instruction ROLLBACK. Il est effecté automatiquement si le script PHP meurt avant le COMMIT (ou si la connexion mysql est coupée, ou si la BD est crashée, etc.)

n°185340
Dost67
Posté le 29-07-2002 à 15:24:40  profilanswer
 

Donc c'est exactement ce que je cherchais.
 
Mais une autre petite question. Pendant une transaction (entre le BEGIN et le COMMIT) est-ce que la table est lockée (en écriture, en lecture) ?
 
Et encore une autre question... Quel type de table (la + performante) : InnoDB ?


Message édité par Dost67 le 29-07-2002 à 15:25:14
n°185426
Snipe Foo
Head Shot !!!
Posté le 29-07-2002 à 16:23:47  profilanswer
 

begin et commit, ça marche que sur innoDB ? et que avec MySQL Max ?


---------------
Ma réflexion sur cette affaire vient de connaître une avancée déterminante.
n°185539
Betcour
Building better worlds
Posté le 29-07-2002 à 17:51:33  profilanswer
 

Non la table n'est pas verouillée, uniquement les rangées (ou pages selon la base de donnée utilisée) qui sont concernées par les lectures/écritures. Ceci dit il suffit de lire la doc MySQL et/ou InnoDB, c'est expliqué dedans en détail.
 
Côté perf j'ai aucune idée si BDB ou InnoDB est plus performant. InnoDB a l'avantage d'etre supporté officiellement par MySQL alors que BDB ne sera plus amélioré. Par contre InnoDB est plus complexe à mettre en oeuvre (mais supporte aussi les FOREIGN KEY)

mood
Publicité
Posté le 29-07-2002 à 17:51:33  profilanswer
 

n°195625
joce
Architecte / Développeur principal
"BugHunter"
Posté le 15-08-2002 à 06:54:00  profilanswer
 

Snipe Foo a écrit a écrit :

begin et commit, ça marche que sur innoDB ? et que avec MySQL Max ?



innoDB et BDB je pense (gemini aussi pe, mais c'est plus supporté je crois)

n°195626
joce
Architecte / Développeur principal
"BugHunter"
Posté le 15-08-2002 à 06:54:43  profilanswer
 

Betcour a écrit a écrit :

Non la table n'est pas verouillée, uniquement les rangées (ou pages selon la base de donnée utilisée) qui sont concernées par les lectures/écritures. Ceci dit il suffit de lire la doc MySQL et/ou InnoDB, c'est expliqué dedans en détail.
 
Côté perf j'ai aucune idée si BDB ou InnoDB est plus performant. InnoDB a l'avantage d'etre supporté officiellement par MySQL alors que BDB ne sera plus amélioré. Par contre InnoDB est plus complexe à mettre en oeuvre (mais supporte aussi les FOREIGN KEY)



plus complexe ?
je trouve carrement pas, y a rien à faire quasiement :)

n°196400
Betcour
Building better worlds
Posté le 17-08-2002 à 18:09:00  profilanswer
 

Je trouve que la gestion des fichiers data innodb complexifie quand même un peu les choses par rapport à MyISAM ou BDB.

n°196409
joce
Architecte / Développeur principal
"BugHunter"
Posté le 17-08-2002 à 18:21:45  profilanswer
 

Betcour a écrit a écrit :

Je trouve que la gestion des fichiers data innodb complexifie quand même un peu les choses par rapport à MyISAM ou BDB.



je vois pas le problème, ils sont autoextensibles :??:


Message édité par joce le 17-08-2002 à 18:21:52

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Cherche tut en fr sur les transactions avec MySql

 

Sujets relatifs
Problème hydraphp et mysql en local (avec easyPHP) (résolu)[MySQL] Rapidité d'un SELECT ...
comment creer une base mysql sur multimania svpDébutant, cherche exemple de dev. avec base Access Multi-Utilisateurs
[PHP/MySQL] Retourner les valeurs ajoutées dans une tableMySql -- Un index sur un SET('0','1') est-il utile ?
Le meilleur des composant mysql ?je cherche un site ou qqu pour apprendre le langage C
[PHP/MySQL] Supprimer les entrées en double?Cherche URL d'un site de visualisation d'images
Plus de sujets relatifs à : Cherche tut en fr sur les transactions avec MySql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR