IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Erreur sur Delete


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 42
    Par défaut Erreur sur Delete
    Bonjour à tous,

    J'ai une base de données Mysql 5.0.45 contenant plusieurs millions d'enregistrements dans une table InnoDb.

    Il m'arrive de devoir faire dans cette table des suppressions importantes : environ 1 million d'enregistrements d'un coup.
    Pour cela, j'execute la commande suivante (en mode console) :
    "Delete from table where id=5;"

    Au bout d'un moment, je reçois cette erreur :
    "Error No. 1205
    Lock wait timeout exceeded; try restarting transaction"

    Ceci en sachant que je n'ai pas d'autre transaction en cours.
    J'ai tenté un "SET AUTOCOMMIT=1" avant l'execution de la commande.
    Dans ce cas, je n'ai plus le message d'erreur mais c'est en attente pendant des heures et lorsque j'interromps le processus, je me rend compte que rien n'a été supprimé.


    Auriez-vous une solution ? merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 290
    Par défaut
    id est-elle indexée ? cf http://dev.mysql.com/doc/refman/5.0/...ete-speed.html.

    Avec ton SET AUTOCOMMIT=1, tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
    afin de visualiser les suppressions au fur et à mesure.

    Dans tous les cas, avec InnoDB, chaque requête est atomique (même avec l'AUTOCOMMIT), donc il ne faut surtout pas annuler ta requête, sinon tu annules toutes les suppressions effectuées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur DELETE avec condition sur un DATETIME
    Par Luke58 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/08/2009, 12h00
  2. Erreur sur un DELETE basique
    Par shkyo dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/03/2009, 16h09
  3. Erreurs sur un trigger BEFORE DELETE
    Par Daikyo dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/06/2008, 02h13
  4. erreur sur ma requete delete
    Par fethioran dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/02/2008, 00h03
  5. [SQL] Erreur sur un Delete en sql via php
    Par speed034 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/05/2007, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo