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 :

Script mysql 5.0 VS 8.0


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gijy
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut Script mysql 5.0 VS 8.0
    Bonjour,

    j'ai un script sql ecrit pour creer et initialiser une base qui fonctionne sous mysql server 5.0 machine equipée sous windows 32 (et oui encore tant que ça marche)
    le meme script ne fonctionne pas sous mysql server 8.0 windows 64!!!!

    qu'elles sont donc les differences??

    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Le plus simple serait d'identifier dans le fichier de suivi (log) les erreurs rencontrées lors de l'exécution du script : la commande exécutée et le message d'erreur retourné.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre confirmé Avatar de gijy
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    Visiblement il existe des differences entre un script mysql 5.7 et 8.0.
    voici le script generé par une ingenerie inverse sur mysql server 8.0 via une base existante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -- -----------------------------------------------------
    -- Table `mytable`.`fournisseurs`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `mytable`.`fournisseurs` (
      `idfournisseur` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
      `nom`  VARCHAR(45) DEFAULT NULL ,
      `contact`  VARCHAR(45) DEFAULT NULL ,
      `email`  VARCHAR(45) DEFAULT NULL ,
      `telephone`  VARCHAR(45) DEFAULT NULL ,
      `adresse` VARCHAR(45) DEFAULT NULL ,
      PRIMARY KEY (`idfournisseur`) )
    ENGINE = InnoDB;
    Ce script fonctionne sous mysql 5.7 mais pas sous 8.0.my
    Il faut le modifier comme suit:
    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
    -- -----------------------------------------------------
    -- Schema mytable
    -- -----------------------------------------------------
    CREATE DATABASE IF NOT EXISTS robodrill DEFAULT CHARACTER SET utf8 ;
    USE robodrill ;
     
    -- -----------------------------------------------------
    -- Table `mytable`.`fournisseurs`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS fournisseurs (
    idfournisseur INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
    nom  VARCHAR(45) DEFAULT NULL ,
    contact  VARCHAR(45) DEFAULT NULL ,
    email  VARCHAR(45) DEFAULT NULL ,
    telephone  VARCHAR(45) DEFAULT NULL ,
    adresse VARCHAR(45) DEFAULT NULL ,
    PRIMARY KEY (idfournisseur) )
    ENGINE = InnoDB;
    suppression des cotes et là ça fonction sur les 2 versions !!!!

    bon voilà pour ceux qui renconterons le probleme.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 622
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tant qu'à faire de revoir le script à l'occasion de la migration en V8, il serait bon de revoir toutes ces colonnes acceptant les "null".
    En l'état, vous pouvez créer des fournisseurs ayant pour seule information un identifiant technique, mais sans nom, ni courriel, ni téléphone...

    Quant à la présence d'un attribut "adresse" unique dans la table fournisseur, c'est soit une erreur de nommage de la colonne, soit une erreur de modélisation.

    A revoir également : les types et longueur des données. Un email peut faire jusqu'à 255 caractères, 45 c'est donc très insuffisant.

    [EDIT] : je corrige, l'adresse courriel c'est jusqu'à 64 caractères pour l'adresse locale + 255 pour le nom du domaine (à partir du symbole @) !

  5. #5
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 898
    Par défaut
    Salut à tous.

    Citation Envoyé par gijy
    Ce script fonctionne sous mysql 5.7 mais pas sous 8.0.my
    Faux, ce script fonctionne correctement, même avec les quotes inversées, à la condition que la base de données "mytable" existe !

    Je l'ai testé sous mysql 8.0.25, dont voici le résultat :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `mytable`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `mytable`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `mytable`.`fournisseurs`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `mytable`.`fournisseurs`
    ( `idfournisseur` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
      `nom`           VARCHAR(45) DEFAULT NULL ,
      `contact`       VARCHAR(45) DEFAULT NULL ,
      `email`         VARCHAR(45) DEFAULT NULL ,
      `telephone`     VARCHAR(45) DEFAULT NULL ,
      `adresse`       VARCHAR(45) DEFAULT NULL ,
      PRIMARY KEY (`idfournisseur`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    select * from `mytable`.`fournisseurs`
    --------------
     
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    Et comme vous pouvez le constater, aucune erreur !

    Cordialement.
    Artemus24.
    @+

  6. #6
    Membre confirmé Avatar de gijy
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    Faux, ce script fonctionne correctement, même avec les quotes inversées, à la condition que la base de données "mytable" existe
    !

    Le script sert justement à créer mytable qui n'existe pas et doit fonctionner dans tous les cas de figure.

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

Discussions similaires

  1. Problème Script MySQL + PhpMyAdmin
    Par Skadi dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 24/02/2010, 14h25
  2. awk dans script + mysql
    Par mbozenko dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 21/10/2009, 20h37
  3. Exécution de scripts mysql
    Par mick8569 dans le forum Outils
    Réponses: 0
    Dernier message: 15/06/2009, 11h29
  4. Script Mysql Récupération d'un id
    Par hirochirak dans le forum MySQL
    Réponses: 3
    Dernier message: 17/12/2008, 14h54
  5. Script mysql 5 > mysql 4
    Par Marcjb dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/07/2006, 15h45

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