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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Commit et types de SGBD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commit et types de SGBD

n°534114
Shogun2002
Posté le 08-10-2003 à 09:36:48  profilanswer
 

Je voudrais savoir si les instructions :
 
START TRANSACTION;
ma requete...
...
COMMIT;
 
fait parti du langage SQL, c'est à dire si on peut l'utiliser sur SQL Server, PostgreSQL, MySql, Oracle, etc...
 
 
Merci

mood
Publicité
Posté le 08-10-2003 à 09:36:48  profilanswer
 

n°535126
nerisson
Pic-pic
Posté le 09-10-2003 à 12:05:54  profilanswer
 

Si mes souvenirs sont bons, la norme c'est:
 begin transaction [transactionName]
 commit transaction [transactionName]
 rollback transaction [transactionName]
En tous cas ca marche sur SQLServer et Sybase.


---------------
Light is right
n°535179
MagicBuzz
Posté le 09-10-2003 à 13:33:39  profilanswer
 

Ouais, la syntaxe c'est BEGIN, pas START ;)
 
Sinon, la plupart des SGBD supportent les transactions toujours avec la même syntaxe.
Pour MySQL, il me semble que ce n'est pas supporté par défaut. Il faut un type de table particulier, et installer un module il me semble, mais j'en sais pas plus, je n'ai jamais essayé. Avec les dernières versions c'est peut-être intégré d'office.
 
Sinon, la différence au niveau du support des transations se situe au niveau de la gestion avancées de transactions.
 
En effet, SQL Server par exemple supporte des sous-transaction, avec possibilité de commiter ou rollbacker un nouveau ou plusieurs de transaction, sans impacter la transaction générale.
 
Avec Oracle, la solution adoptée est différente. Ca marche avec des CHECKPOINT. C'est à dire qu'au sein d'une même transaction, on peut décider de rollbacker jusqu'à un checkpoint défini.
 
Mais pour le fonctionnement basique des transations, c'est pareil pour tous les SGBD.
 
La seule différence se situe au niveau des lock engendrés par les transactions.
 
SQL Server va locker toute la table tant que la transaction n'est pas terminée.
 
Oracle va tenter de faire du versionning au niveau des lignes, puis des locks au niveau des lignes uniquement, ce qui permet une meilleure montée en charge en cas de transactions intensives.
 
Pour MySQL je ne sais pas quel type de lock est utilisé.
Mais de toute façon, c'est transparent pour l'utilisateur, la seule différence sera au niveau des performances et des risques de timeout plus ou moins importants en cas de transactions intensives et parallèles.
 
Sinon, au niveau d'ODBC quand on utilise ODBC, il y a aussi une gestion des transactions qui fait abstraction du support, et qui il me semble permet de faire des transaction imbriquée dans tous les cas (à confirmer, en tout cas ça marche même dans Access qui n'est pas transactionnel)

n°535181
drasche
Posté le 09-10-2003 à 13:38:29  profilanswer
 

pour MySQL: supporté optionnellement dans la version 3.23 (il suffit de modifier my.ini) et par défaut dans la version 4. Le type de table est InnoDB (lequel supporte également les contraintes de foreign keys, clés étrangères).
Pour le locking, c'est la table qui est verrouillée, non l'enregistrement.


Message édité par drasche le 09-10-2003 à 13:38:48

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

  Commit et types de SGBD

 

Sujets relatifs
Types de script pour les stats lycos multimania?[SGBD][ORACLE] transformation d'une requete SQLserver en requeteORACLE
[MySQL] Besoin d'aide sur les types de Variables[SGBD/Mysql] Choix multiples et stockage en BDD
[MYSQL] petite question sur la syntaxe des types de variables[SGBD] Structure d'une (grosse) base de données
[SGBD] Cherche équivalent ('%query%') pour Access !!![SGBD] Quel logiciel pour faire des schemas entites associations ?
[SGBD] Base de données sans serveur ?[SGBD] Structure de tables mysql
Plus de sujets relatifs à : Commit et types de SGBD


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