Commit ? - SQL/NoSQL - Programmation
Marsh Posté le 07-09-2010 à 14:24:06
ReplyMarsh Posté le 07-09-2010 à 15:31:48
...et tu peux désactiver ce comportement simplement - par exemple si tu utilises l'extension OCI tu peux utiliser le second paramètre optionnel de oci_execute pour désactiver le mode autocommit, puis utiliser oci_commit et oci_rollback.
Marsh Posté le 07-09-2010 à 16:20:50
Ah super, en effet j'ignorais cette option d'auto-commit.
Merci à vous deux :-)
Marsh Posté le 07-09-2010 à 17:48:13
jeff@be a écrit : En effet, le driver Oracle de PHP est par défaut en "auto commit". |
c'est une blague ?
Marsh Posté le 07-09-2010 à 17:52:41
Harkonnen a écrit : |
Non. Et c'est pareil pour tous les sgbd, à ma connaissance.
Si tu veux démarrer une transaction il faut le faire explicitement.
Marsh Posté le 07-09-2010 à 20:46:14
Harkonnen a écrit : |
C'est très répandu, et ce n'est sans doute pas une bonne idée mais bon... C'est ça ou subir des vagues de protestations sur le mode "ça marche pas!"
Marsh Posté le 07-09-2010 à 21:45:31
sircam a écrit :
|
Ça évite de perdre des données et de wedger la DB parce que t'as niqué ta transaction et tu sais même pas qu'il faut la rollbacker. C'est le meilleur défaut puisque c'est celui qui fonctionne pour les gens ne sachant pas ce qu'est une transaction.
les autres désactivent l'autocommit et baste. Puis bon la majorité des phpteux partent sur une DB qui ne comprend même pas le concept de transaction alors
Marsh Posté le 08-09-2010 à 09:31:36
masklinn a écrit : |
Pas compris . Qu'est-ce que tu reproches aux transactions de MySQL ?
Marsh Posté le 08-09-2010 à 09:44:23
esox_ch a écrit : Pas compris . Qu'est-ce que tu reproches aux transactions de MySQL ? |
Les transactions MySQL? Sur une DB MyISAM?
Spoiler : et même sur du innodb, pas de sous transactions (transactions récursives ou savepoints) et DDL pas transactionné que ce soit sur les tables (sauf temp), les procs, les functions, les views, les triggers ou les constraints |
Marsh Posté le 08-09-2010 à 09:49:05
Je pensais plutôt à InnoDB..
Edit: Ok. Mais donc si t'avais un projet à lancer sur plate-forme non-MS. Tu partirais sur quoi? Postgres?
Marsh Posté le 08-09-2010 à 09:56:44
esox_ch a écrit : Je pensais plutôt à InnoDB.. |
Si j'avais à utiliser un RDBMS? Oui, et/ou sqlite en dev ou si quasiment que du read (genre 99% ou 99.9% de read)
Marsh Posté le 07-09-2010 à 14:11:34
Bonjour,
J'utilise une base de données Oracle.
Lorsque je fais une requête INSERT, UPDATE ou DELETE directement sur le SGBD (iSQLPlus, SQL Developer, etc.), je dois faire un commit pour valider la transaction.
Pourquoi quand je fais une requête via PHP, ou tout autre langage de programmation, je n'ai pas besoin de faire un commit ? Le commit est-il "comprit" dans les fonctions du langage de programmation ?
En espérant que vous pourrez m'éclairer sur ce point,
Je vous remercie d'avance.
---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<