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 :

changer le mode de transaction en ligne de commande (MyISAM a INNODB)


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut changer le mode de transaction en ligne de commande (MyISAM a INNODB)
    Bonjour,
    j'effectue des testes pour me familiariser avec PDO et là je suis sur la partie transaction.
    c'est un test basique, très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //transaction
    $dbh->beginTransaction();
    $dbh->exec('UPDATE sonde1 set unite="15"');
    $req= $dbh->query('SELECT * from sonde1');
    while ($d=$req->fetch(PDO::FETCH_ASSOC)){
         echo "<pre>";
            print_r($d);
             echo "</pre>";
    }
    $dbh->rollBack();
    //rollBack
    echo "rollBack !!";
    $req= $dbh->query('SELECT * from sonde1');
    while ($d1=$req->fetch(PDO::FETCH_ASSOC)){
         echo "<pre>";
            print_r($d1);
             echo "</pre>";
    }
    malheureusement les valeurs sont les nouvelles après le rallback donc j'en ai conclu que ma base sous mysql était pas en innodb.
    ma question est :comment changer cela en ligne de commande?
    merci d'avance.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 739
    Points
    11 739
    Par défaut
    En fait, ce n'est pas ta base qui est en InnoDB ou non, mais chaque table. Voici quelques requêtes-type pour t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    -- pour connaître le moteur de stockage (ENGINE) d'une table :
    SHOW CREATE TABLE toto ;
     
    -- pour passer une table en InnoDB :
    ALTER TABLE toto ENGINE = InnoDB ;
     
    -- afficher les variables système liées aux transactions :
    SELECT @@autocommit, @@tx_isolation_level ;

  3. #3
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    ah merci beaucoup. j'ai fais les changements et à présent les transactions fonctionnent.
    merci

  4. #4
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    est ce qu'il y a un moyen de dire que mes tables sont en Innodb au moment de leur création?

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 739
    Points
    11 739
    Par défaut
    oui, c'est même recommandé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE Toto (
    blabla
    ) ENGINE = InnoDB ;

  6. #6
    Membre habitué
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 245
    Points : 164
    Points
    164
    Par défaut
    merci. parce que faire alter table pour toutes mes tables cela serait très long

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

Discussions similaires

  1. Executer un programme en mode administrateur via une ligne de commande
    Par dehorter olivier dans le forum Windows Vista
    Réponses: 1
    Dernier message: 22/08/2009, 11h45
  2. Réponses: 5
    Dernier message: 27/04/2007, 14h59
  3. Réponses: 6
    Dernier message: 22/06/2005, 10h05
  4. Mode Texte 43/50 lignes
    Par M.Dlb dans le forum Assembleur
    Réponses: 24
    Dernier message: 19/10/2004, 00h24
  5. [Service] Changer le mode de demarrage ?
    Par esa dans le forum Langage
    Réponses: 6
    Dernier message: 10/11/2003, 15h38

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