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

SQL Procédural MySQL Discussion :

[Migration depuis Oracle] Ajouter une contrainte par ALTER TABLE sans devoir préciser le DATA TYPE


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut [Migration depuis Oracle] Ajouter une contrainte par ALTER TABLE sans devoir préciser le DATA TYPE
    Bonjour,

    Je suis actuellement en train de migrer une base de données Oracle 10g vers Mysql 5.6.

    Après avoir exporté ("déchargé" selon le langage Oracle) la base de données Oracle dans un fichier .sql, je tente de l'adapter pour l'importer dans MySql.

    Je rencontre un problème sur les instructions "ALTER TABLE". Voici un exemple en syntaxe Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE "ABOAUTHFORTESERENADE" MODIFY ("ID" NOT NULL ENABLE);
    Si j'ai bien compris, en Mysql il faut :
    - préciser le DATATYPE
    - supprimer les parenthèses et le "ENABLE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE "ABOAUTHFORTESERENADE" MODIFY "ID" INT NOT NULL;
    Mon problème est que, si je choisis cette solution de modifier tous mes ALTER TABLE, j'en ai des dizaines voire des centaines à adapter... Supprimer les parenthèses et le ENABLE ça va encore ça peut se faire par macro, mais ajoute le data type ça veut dire aller consulter la table pour retouver le type et modifier l'instruction, multiplié par des dizaines de fois... Ce serait trop fastidieux.

    D'où ma question, existe-il un autre moyen ? Du genre une autre syntaxe permettant d'ajouter des contraintes sur des champs sans avoir à re-préciser leur datatype ? Ou autre ?

    Merci d'avance

    Edit : désolé je ne suis pas certain d'avoir poster au bon endroit :/

  2. #2
    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 873
    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 873
    Par défaut
    Salut danyboy85.

    La dernière fois que j'ai fait une migration d'une base de données IDS II sous BULL vers DB2 sous IBM, nous sommes passés par un fichier plat ou tout était sous forme de chaînes de caractères.
    On a dû créer sous BULL des programmes COBOL de déchargements, et sous IBM des programmes COBOL de chargements.
    Avec toutes les spécificités que l'on rencontre dans ces deux environnements.
    Par exemple, l'organisation réseau coté IDS II et organisation relationnel coté DB2.
    Codification ASCII coté BULL et codification EBCDIC coté IBM.

    Ce que je veux dire, c'est qu'il n'existe pas d'outils universelle, pour migrer d'un SGBD vers un autre.

    Citation Envoyé par danyboy85
    Ce serait trop fastidieux.
    Un SGBD est un environnement propriétaire. Quel est l'intérêt de créer une passerelle vers un autre SGBD qui représente la concurrence ?
    Tout est fait pour que tu restes dans cet environnement, celui de la société qui développe ce SGBD.

    D'où l'importance de choisir le bon SGBD dès le départ, c'est-à-dire avant de commencer à développer ses applications.

    @+

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 997
    Billets dans le blog
    6
    Par défaut
    Il est beaucoup plus simple de passer par un outil d’ingénierie fait pour cela comme Power AMC...
    1) faire une rétro ingéniérie de la base Oracle en modèle physique (MPD) via Power AMC
    2) passer du modèle physique en modèle logique (MLD) ou conceptuel (MCD)
    3) générer un modèle physique propre à MySQmerde...

    Montre en main, pour une base de 100 tables : 3 minutes au plus !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Ajouter une contrainte NOT NULL à une colonne
    Par abdelghani_k dans le forum Firebird
    Réponses: 1
    Dernier message: 03/06/2007, 16h26
  2. [VB 2005][DatagridView] Ajouter une ligne par code
    Par RaelRiaK dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/01/2007, 22h54
  3. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  4. commande pour ajouter une contrainte
    Par naazih dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/05/2006, 08h11
  5. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39

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