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 :

La taille des instructions est-elle limitée ? [MySQL-5.6]


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut La taille des instructions est-elle limitée ?
    Bonjour,

    Je débute avec MySQL et les bases de donnée en général.
    J'ai besoin dans une application Java d’interagir avec une base de donnée, j'ai donc installé en local sur ma machine un serveur MySQL (dernière version, MySQL Community Edition), pour pouvoir tester facilement mon application.
    Hors j'ai un problème avec l'instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = monitor_disabled) BEGIN CREATE TABLE monitor_disabled (date DATETIME) END;
    Je ne sais même pas si elle fonctionne ou est faux, mais le problème n'est pas là, car j'ai l'impression qu'à chaque fois que je fais la requête, c'est comme si elle étais "coupé". Je reçoit le message d'erreur suivant :
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = monito' at line 1
    Cela ne vient pas de mon application car quand j'essai la même requête en ligne de commande, j'ai le même message et le même problème, à savoir que le serveur semble ne prendre en compte que le début de ma requête.
    Il y a-t-il donc une limite dans la longueur des instructions ? Si oui, il y a-t-il un moyen de la modifier ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 301
    Points
    301
    Par défaut
    Bonsoir,

    Il est difficile pour moi de te répondre avec si peu d'éléments. Ton IF est placé où ? A l'intérieur d'une procédure stockée ?

    Essais de remplacer ton BEGIN par THEN, en supprimant le end bien sur.

    Concernant la longueur de ta requête, aucun problème.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    J'ai essayé avec le THEN, même problème.

    En fait ce que je veux faire, c'est vérifier au début de mon application l'existence de certaines tables, et les créer si elles n'existent pas.
    En gros, dans le début de mon application j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    _connection = DriverManager.getConnection("jdbc:mysql://address:3306", "user", "password");
    ...
    _connection.createStatement().execute("IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = monitor_disabled) BEGIN CREATE TABLE monitor_disabled (date DATETIME) END;");

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Tu peux utiliser la syntaxe là plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE IF NOT EXISTS monitor_disabled (date DATETIME);
    Cf la doc MySQL : http://dev.mysql.com/doc/refman/5.0/...ate-table.html

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    C'est curieux de vouloir créer par programme une table avec une seule colonne DATETIME !

    Quel est le but de la manoeuvre ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Résolu
    @Bisûnûrs
    Merci, la syntaxe a fonctionné, mon problème est réglé.

    @CinePhil
    Je voulais en fait stocker quand le programme était arrêté ou redémarré, mais j'ai finalement décidé de me débrouiller autrement.

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

Discussions similaires

  1. la scène OpenGL est-elle limitée?
    Par MClover dans le forum OpenGL
    Réponses: 4
    Dernier message: 14/05/2008, 13h59
  2. L'implementation des modules est-elle dépendente de celle du kernel ?
    Par Hibou57 dans le forum Administration système
    Réponses: 3
    Dernier message: 28/11/2007, 18h47
  3. Taille des instructions machines
    Par Lyna77 dans le forum Composants
    Réponses: 8
    Dernier message: 15/10/2007, 10h10
  4. cette instruction est elle possible ?
    Par poulette3000 dans le forum Débuter
    Réponses: 4
    Dernier message: 07/10/2007, 00h48
  5. [8086] Pourquoi la taille de segment est-elle de 64 ko ?
    Par gza.gza dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2007, 22h24

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