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 :

Créer une nouvelle base sur le modèle d'une autre


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut Créer une nouvelle base sur le modèle d'une autre
    Bonsoir à tous,

    Je me suis intéressé il y a 2 mois de cela à la possibilité de créer un petit logiciel basé sur une base MySQL. N'ayant aucune base, j'ai pu avancer à mon rythme grâce aux différents tutoriels que j'ai pu trouver ici et sur d'autres sites mais là je bloque sur un problème.

    Je monte donc un logiciel en C# qui permet de se connecter à une base MySQL afin d'y ajouter/supprimer/modifier des données pour le moment (jusque là j'y suis bien arrivé).

    Là où je rencontre un problème, c'est sur la possibilité de créer une nouvelle base basée sur le modèle de la première.

    Je m'explique un peu mieux:
    j'ai créé une base "projet1"
    Dans cette base projet j'y ai créé plusieurs table ("table1", table2", table3",etc).

    j'ai effectué un schéma sous workbench qui m'a donnée le code afin de créer tout cela.

    Maintenant je voudrais par exemple arriver à créer une nouvelle base "projet2" qui contienne les mêmes tables (contenant elles-mêmes les mêmes colonnes) et cela en passant par mon logiciel en c#. (recopier le modèle sans les données enregistrées dans le projet1)

    J'ai regardé un peu sur le forum et sur internet mais je n'ai pas trouvé la solution (peut être ai-je mal cherché c'est plus que probable).

    j'ai tenté de la créer en effectuant plusieurs lignes de création (CREATE base, puis CREATE table1, CREATE table2 etc) mais cela n'a pas fonctionné.

    Auriez-vous une solution à mon problème?

    en vous remerciant par avance.
    bonne soirée

  2. #2
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Normalement cela doit fonctionner à partir du moment où dans votre script de création de vos tables et relations n'y figure pas le nom du schéma, ni le definer (MySQL workbench à tendance à le rajouter systématiquement).

    ++

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Bonjour,
    Merci beaucoup pour vos informations, j'ai donc réessayé et ça marche très bien.

    Je mets ci-dessous le code que j'ai utilisé au cas ou certains seraient intéressés (je ne suis pas sûr que ce soit le plus performant ni le plus esthétique mais il marche bien )

    Code obtenu par le Workbench:
    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
     
    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
     
    CREATE SCHEMA IF NOT EXISTS `Projet2` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
    USE `Projet2` ;
     
    -- -----------------------------------------------------
    -- Table `Projet2`.`Periodes`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `Projet2`.`Periodes` (
      `idPeriodes` INT NOT NULL AUTO_INCREMENT ,
      `NomPeriodes` VARCHAR(20) NOT NULL ,
      PRIMARY KEY (`idPeriodes`) ,
      UNIQUE INDEX `Nom Périodes_UNIQUE` (`NomPeriodes` ASC) )
    ENGINE = InnoDB;
     
     
    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
    Code C# sur le bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    string bdnew = "CREATE SCHEMA IF NOT EXISTS `"+textBox4.Text+"` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;";
    string periodenew = "CREATE TABLE IF NOT EXISTS `"+textBox4.Text+"`.`Periodes` (`idPeriodes` INT NOT NULL AUTO_INCREMENT, `NomPeriodes` VARCHAR(20) NOT NULL, PRIMARY KEY (`idPeriodes`), UNIQUE INDEX `Nom Périodes_UNIQUE` (`NomPeriodes` ASC)) ENGINE = InnoDB;";
     
    con.Open();
    MySqlCommand add1 = new MySqlCommand(bdnew,con);
    MySqlDataReader mep1 = add1.ExecuteReader();
    mep1.Dispose();
    MySqlCommand add2 = new MySqlCommand(periodenew,con);
    MySqlDataReader mep2 = add2.ExecuteReader();
    mep2.Dispose();
    con.Close();
    le "textBox4" correspondant à une textbox que j'ai placé pour pouvoir nommer la nouvelle base. (j'ai lu qu'il était plus intéressant et sécure d'utiliser Parameters à la place du textbox.text pour éviter les manipulations du genre DROP DATABASE mais je n'ai pas encore lu le chapitre en parlant du coup je m'essaie d'abord avec la textbox tant que je suis le seul à l'utiliser ^^)

    Encore merci.

    Bonne journée

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/03/2014, 12h03
  2. Réponses: 5
    Dernier message: 19/02/2014, 12h43
  3. Réponses: 2
    Dernier message: 11/10/2011, 10h13
  4. Créer une nouvelle base de données sur Oracle10g
    Par mariam2001 dans le forum Administration
    Réponses: 6
    Dernier message: 11/05/2007, 16h25
  5. Réponses: 1
    Dernier message: 22/11/2006, 21h49

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