Le role de rollback?
yassine
-
jee pee Messages postés 41513 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 41513 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir,
je suis encore debutant en oracle et je ne sais pas plein de chose à propos de pl/sql....bon,pouvez vous m'expliquer le role de ROLLBACK ?
et dans quels cas on peut l'utiliser ?
et merci..
je suis encore debutant en oracle et je ne sais pas plein de chose à propos de pl/sql....bon,pouvez vous m'expliquer le role de ROLLBACK ?
et dans quels cas on peut l'utiliser ?
et merci..
A voir également:
- Rollback sql oracle
- Logiciel sql - Télécharger - Bases de données
- Requête sql pix - Forum Python
- Jointure sql ✓ - Forum MySQL
- Afficher le résultat d'une requête SQL dans une zone de texte - Forum PHP
- Oracle america inc virus ✓ - Forum Virus
1 réponse
Bonjour,
Quand en sql tu fais un update, il n'est pas automatiquement validé. Il est en attente. Pour valider ta mise à jour, tu vas lancer un ordre commit;
Si tu as fait une erreur dans ton update, par exemple tu attends 1 ligne mise à jour et cela en met à jour 100 000, donc ton code est mauvais, là plutôt que de valider par commit, tu vas faire rollback; (retour en arrière) pour invalider l'update, ta base n'est donc pas impactée. Là s'était pour du sql en direct.
Quand tu programmes, en plsql ou autre. Une "transaction", c'est un ensemble de mises à jour qui doivent toutes être effectuées pour que la base soit dans un état cohérent. Par exemple si tu ajoutes une commande, tu vas créer l'entête, créer les lignes, mettre à jour le stock des articles et mettre à jour le solde du compte client, donc plusieurs tables sont impactées. Dans ton programme tu vas donc définir une séquence qui comporte les ordres pour effectuer toutes ces mises à jour de la base. Si tout se passe bien, tu vas terminer par un commit. Mais supposons que lors de l’exécution des commandes sql tu rencontres une anomalie, et que bien sûr parce que tu programmes correctement, tu testes tous les codes retours, si l'une des commandes sql de ta "transaction" se passe mal (l'enregistrement n'existe plus, la base est pleine, ...) là (par exemple sur un sqlerror) tu vas lancer un rollback qui annule les mise à jour antérieures.
Cdlt
un étranger, c'est un ami qu'on n'a pas encore rencontré.
Quand en sql tu fais un update, il n'est pas automatiquement validé. Il est en attente. Pour valider ta mise à jour, tu vas lancer un ordre commit;
Si tu as fait une erreur dans ton update, par exemple tu attends 1 ligne mise à jour et cela en met à jour 100 000, donc ton code est mauvais, là plutôt que de valider par commit, tu vas faire rollback; (retour en arrière) pour invalider l'update, ta base n'est donc pas impactée. Là s'était pour du sql en direct.
Quand tu programmes, en plsql ou autre. Une "transaction", c'est un ensemble de mises à jour qui doivent toutes être effectuées pour que la base soit dans un état cohérent. Par exemple si tu ajoutes une commande, tu vas créer l'entête, créer les lignes, mettre à jour le stock des articles et mettre à jour le solde du compte client, donc plusieurs tables sont impactées. Dans ton programme tu vas donc définir une séquence qui comporte les ordres pour effectuer toutes ces mises à jour de la base. Si tout se passe bien, tu vas terminer par un commit. Mais supposons que lors de l’exécution des commandes sql tu rencontres une anomalie, et que bien sûr parce que tu programmes correctement, tu testes tous les codes retours, si l'une des commandes sql de ta "transaction" se passe mal (l'enregistrement n'existe plus, la base est pleine, ...) là (par exemple sur un sqlerror) tu vas lancer un rollback qui annule les mise à jour antérieures.
Cdlt
un étranger, c'est un ami qu'on n'a pas encore rencontré.