Question bête (c'est quoi un commit?)

Résolu
Polack77
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
- 31 août 2006 à 09:52
cs_Malkuth
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
- 1 sept. 2006 à 19:16
Avant de me faire traiter de feignait je tien à dire que
j'ai regarder sur le net avant de posée cette question (rapidement c'est vrais
mais j’ai plein de truc à faire et je ne peut pas me permettre d’y passée deux
heures).

J'aurais en faite simplement voulut avoir des précisions et savoir si il y des
"trucs" à savoir pour l'utilisé correctement.

Déjà voila ce que j'ai compris :

    Un commit s'utilise pour versifier l'exécution de requête afin
d'exécuter toute les requête ou aucune, et, cas ce passerais de la façon
suivante :

       Désactivation du commit automatique (à priori
avec un "BEGIN TRANSACTION" mais en fais cette commande c'est quoi?
Une sorte de requête ???)
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"
o:href="/imgs2/smile.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
       On fais les requête normalement ("INSERT
INTO ..." cas je sais quand même ce que cas veut dire! )

       Effectue une commit ("COMMIT
TRANSACTION" alors si j'ai bien compris on ne fait cas que si on n'a pas
d'erreur durant les "INSERT" ? Mais cette commande aussi je ne sais
pas ce que c'est! )

       En cas d'erreur durant les "INSERT"
on fait ("ROLLBACK TRANSACTION" Donc ca c'est pour annulé tout les
"INSERT" effectuer depuis le dernier commit? Heeee, cas non plus je ne
sais pas si c'est une requête ou autre !)

<!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75"
alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image002.gif"
o:href="/imgs2/smile_blush.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
Bon alors en résumé je crois avoir compris ce que c'est qu'un
"commit" tout du moins en théorie mais je ne sais pas command on s'en
sert en vrais.


Merci d'avance.









Ce soir dans "triste monde tragique" :


Des vers qui mangent les programmeurs !
Des virus sorte des ordinateurs et attaque des gents !

4 réponses

cs_skweeky
Messages postés
259
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
11 janvier 2010
7
31 août 2006 à 10:44
Il y a 3 commandes :



<li>BEGIN TRANSACTION</li>
<li>COMMIT TRANSACTION</li>
<li>ROLLBACK TRANSACTION</li>

BEGIN TRANSACTION marque le début d'une transaction... Quand on se trouve dans le cadre d'une transaction, toutes les requêtes de modification (INSERT / DELETE / UPDATE) executées seront toutes refusées ou acceptées en bloc.

Je fais pas exemple ceci :

BEGIN TRANSACTION

INSERT INTO TableA (ChampA)
VALUES (1)

UPDATE TableB
SET ChampB = 7

DELETE FROM TableC
WHERE Id = 89

COMMIT TRANSACTION

Toutes les requêtes entre BEGIN TRAN et COMMIT TRAN sont validées. Si par contre je remplace COMMIT par ROLLBACK, toutes les modifications seront annulées.

Le principe de la transaction c'est tout ou rien... soit tout passe (COMMIT) soit rien (ROLLBACK).

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
3