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

 MySQL Discussion :

Fonction : LOCK TABLE


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut [RESOLU] Fonction : LOCK TABLE
    Bonjour à tous, je suis débutant en SQL, j'en ai fait un peu en cours et je me heurte à un problème que je n'arrive pas à résoudre, aussi ca serait simpa de bien vouloir me faire profiter de votre savoir.

    Je suis en train d'installer un script (XNova) de jeu sur un ftp free. Le problème vient du fait que ce script utilise pour la fonction LOCK TABLE lors de l'UPDATE de certaines tables et que free n'accepte pas la fonction LOCK TABLE.

    Voici un exemple de code qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    doquery("LOCK TABLE {{table}} WRITE", 'planets');
    doquery ($QryUpdatePlanet, "planets");
    doquery("UNLOCK TABLES", '');
    J'aimerai remplacer la fonction LOCK TABLE par une autre fonction qui aurait le même effet, pour pouvoir utiliser le script sur chez mon hébergeur free

    Est-ce possible ? Et si oui comment dois-je modifier la fonction ?

    J'utilise MySQL 5.0 avec phpMyAdmin 2.11.3 si je ne me trompe pas

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Par défaut
    Bonsoir

    Si Free offre le moteur innodb vous pourriez alors faire un SELECT...FOR UPDATE qui verrouillent les lignes jusqu'à l'UPDATE suivant.

    Sinon vous pourriez essayer sans le lock TABLE, sans garantie... !

    Ou encore vous pourriez monter un système de pseudo Lock (gérer vous même les locks dans l'application via une table dédiée)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Pour le moment c'est ce que j'ai fait, j'ai commenté la première et dernière ligne qui posent problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //doquery("LOCK TABLE {{table}} WRITE", 'planets');
    doquery ($QryUpdatePlanet, "planets");
    //doquery("UNLOCK TABLES", '');
    Et ça fonctionne comme ça mais j'imagine que si elles sont là c'est pour éviter les doublons ou ce genre de problème

    Par contre je ne sais pas comment remplacer LOCK TABLE dans mon code par SELECT... FOR UPDATE Faut-il faire comme suit ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doquery("SELECT {{table}} WRITE", 'planets');
    doquery ($QryUpdatePlanet, "planets");
    ou comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doquery("SELECT {{table}} FOR UPDATE OF 'planets'");
    doquery ($QryUpdatePlanet, "planets");
    ou autrement ...

    Merci de m'aider

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

Discussions similaires

  1. Lock table
    Par amelie6 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/09/2011, 16h29
  2. LOCK TABLES et TRUNCATE TABLE
    Par killy-kun dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/08/2005, 15h52
  3. [SQL-Interbase] Fonction SHOW TABLES
    Par polocfa41 dans le forum InterBase
    Réponses: 4
    Dernier message: 26/04/2005, 11h33
  4. Fonctions et tables temporaires ?!
    Par devdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/12/2004, 11h46
  5. Réponses: 8
    Dernier message: 13/08/2004, 12h32

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