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

Python Discussion :

Python - création tables MariaDB


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut Python - création tables MariaDB
    Bonjour,

    Je rencontre un pb (de syntaxe semble t-il) à la création d'une table en mariaDB (pas de pb à la création de la database).
    Voici mon code:

    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
    42
    43
    44
    45
     
    database = """CREATE DATABASE IF NOT EXISTS db_solardata;"""
     
    t_Solar_Data = """
            CREATE TABLE IF NOT EXISTS t_Solar_Data (
            id_solar_data INT NOT NULL AUTO_INCREMENT,
            updated DATETIME NOT NUL,
            solarflux SMALLINT DEFAULT NUL,
            aindex SMALLINT DEFAULT NUL,
            kindex SMALLINT DEFAULT NUL,
            kindexnt VARCHAR DEFAULT NUL,
            xray VARCHAR DEFAULT NUL,
            sunspots SMALLINT DEFAULT NUL,
            heliumline FLOAT DEFAULT NUL,
            protonflux SMALLINT DEFAULT NUL,
            electonflux SMALLINT DEFAULT NUL,
            aurora SMALLINT DEFAULT NUL,
            normalization FLOAT DEFAULT NUL,
            latdegree FLOAT DEFAULT NUL,
            solarwind FLOAT DEFAULT NUL,
            magneticfield FLOAT DEFAULT NUL,
            geomagfield VARCHAR DEFAULT NUL,
            signalnoise VARCHAR DEFAULT NUL,
            fof2 FLOAT DEFAULT NUL,
            muffactor FLOAT DEFAULT NUL,
            muf FLOAT DEFAULT NUL,
            PRIMARY KEY(id_solar_data) ); """
     
    try:
        conn =  mysql.connector.connect(host="127.0.0.1",
                                       user="root", password="raspberry")
        cursor = conn.cursor()
        cursor.execute(database)
        cursor.execute("""use db_solardata;""")
        cursor.execute(t_Solar_Data)
        cursor.execute(t_calculatedconditions)
        cursor.execute(t_calculatedvhfconditions)
    except mysql.connector.errors.InterfaceError as e:
        print("Error %d: %s" % (e.args[0], e.args[1]))
        sys.exit(1)
    finally:
        # On ferme la connexion
        if conn:
            conn.close()
            print('The database and the tables have been correctly created.')
    L'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NUL,
            solarflux SMALLINT DEFAULT NUL,
            aindex SMALLINT DEFAULT NUL,
            kindex S...' at line 3
    Mais je ne parviens à m'en sortir.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Vous avez beaucoup de NUL avec un seul L dans votre requête.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut
    Merci Arioch, je n'avais même pas vus mes fautes de frappe (je suis NUL = NULL )

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par F1TRN Voir le message
    cursor.execute("""use db_solardata;""")
    Je ne suis pas certain que ce soit une bonne pratique. Je pense que tu devrais fermer la connection pour en ouvrir une nouvelle sur la bdd créée.
    Accessoirement les triples quotes ne sont pas utiles pour de simples strings.

    Et (autre façon de faire), personnellement quand j'ai un projet avec bdd, j'inscris la création bdd dans un fichier sql que je joue (ou rejoue si je veux tout réinitialiser) directement. Mes codes Pythons partent du principe que la bdd existe et si elle n'existe pas, l'indiquent au début du programme mais je ne m'embête pas à la leur faire créer.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Mes codes Pythons partent du principe que la bdd existe et si elle n'existe pas, l'indiquent au début du programme mais je ne m'embête pas à la leur faire créer.
    C'est pour ça qu'on a des "CREATE TABLE IF NOT EXISTS..."

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut
    Merci à tous... J'appends avec vous, même si je ne comprends pas toujours tous.

    Maintenant je veux ajouter deux autres tables et et les lier à la première. Dites moi si je me trompe, mais d'après ce que je comprends dans les différentes lectures ça doit ressemble à une truc comme ça:

    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
     
    # Table 1
    t_1 = """
            CREATE TABLE IF NOT EXISTS t_1 (
            ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
            ID_T_2 INT UNSIGNED NOT NULL,
            ID_T_3 INT UNSIGNED NOT NULL,
            .../...
            FOREIGN KEY (ID_T_2) REFERENCES nom_database.t_2(id_t2),
            FOREIGN KEY (ID_T_3) REFERENCES nom_database.t_3(id_t3)
    );"""
    # Table2
    t_2 = """
            CREATE TABLE IF NOT EXISTS t_2 (
            id_t2 INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
            .../...
    );"""
    # Table3
    t_3 = """
           CREATE TABLE IF NOT EXISTS t_3(
           id_t3 INT UNSIGNED NOT NULL PRIMARY KEY AUTO INCREMENT,
           .../...
    );"""
    Mais j'obtiens l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Can't create table `db_solardata`.`t_Solar_Data` (errno: 150 "Foreign key constraint is incorrectly formed")

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_t3 INT UNSIGNED NOT NULL PRIMARY KEY AUTO INCREMENT,
    Pas d'underscore à AUTO INCREMENT ici ?

  8. #8
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut
    Citation Envoyé par Arioch Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_t3 INT UNSIGNED NOT NULL PRIMARY KEY AUTO INCREMENT,
    Pas d'underscore à AUTO INCREMENT ici ?
    Arioch, je ne comprends pas pourquoi car d'après le wiki MariaDB AUTO_INCREMENT à un underscore.
    Et pourquoi uniquement sur t_3.id_t3 ?

    Si je le retire de t_2 et de t_3 j'ai tjrs la même erreur de syntaxe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (errno: 150 "Foreign key constraint is incorrectly formed")

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par F1TRN Voir le message
    Mais j'obtiens l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Can't create table `db_solardata`.`t_Solar_Data` (errno: 150 "Foreign key constraint is incorrectly formed")
    C'est une erreur dans votre SQL qui est un mini-langage qui n'a rien à voir avec Python (et qui a sa propre rubrique (SGDB) voire mariadb.

    Citation Envoyé par F1TRN Voir le message
    J'appends avec vous, même si je ne comprends pas toujours tous.
    Vous codez en tapant sur le clavier en espérant que çà tombe en marche sans message d'erreur. Il faut vous former avant... histoire d'avoir réfléchi à quoi coder et comment pour avoir des résultats certains plutôt que n'importe quoi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vous codez en tapant sur le clavier en espérant que çà tombe en marche sans message d'erreur. Il faut vous former avant... histoire d'avoir réfléchi à quoi coder et comment pour avoir des résultats certains plutôt que n'importe quoi.
    - W
    C'est ce que je fait, je lis, puis j'essaye d'appliquer, mais sur le web y-a tellement de choses bonnes et non bonnes que parfois.

  11. #11
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est pour ça qu'on a des "CREATE TABLE IF NOT EXISTS..."
    Ouais super. Mais comme je parle de la bdd elle-même et non de ses tables (bien entendu, le script qui crée la bdd crée aussi les tables qui vont avec)
    De plus si je pars du principe que la bdd (et ses tables) existent déjà, comme je l'ai dit je ne vois pas l'utilité de m'embêter à les faire créer par Python, avec ou sans la clause "if not exists"....

    Citation Envoyé par F1TRN Voir le message
    Maintenant je veux ajouter deux autres tables et et les lier à la première. Dites moi si je me trompe, mais d'après ce que je comprends dans les différentes lectures ça doit ressemble à une truc comme ça:
    Ce n'est plus un souci Python mais un souci de syntaxe SQL. Tu aurais donc avantage à aller poster là-bas.
    Ce que tu nommes "liaison" est appelé "contrainte d'intégrité". Comme son nom l'indique, ça permet à une bdd de rester intègre.
    Imaginons par exemple dans un magasin une table "ref_modele" qui référence les modèles. Il y aura le modèle AX001 => robe légère, le modèle AY001 => pull-over etc etc.
    Arrive ensuite la table des prix. Il y aura donc le prix AX001 - Coton - 55€ ; le prix AX001 - Laine - 90€ etc.
    A cette contrainte, il faut indiquer quoi faire quand la référence disparait. Que faire donc si AX001 disparait du modèle. Là tu as plusieurs possibilités
    • tu cascades la disparition sur les tables associées => tous les prix AX001 disparaissent aussi
    • tu interdis la disparition => s'il y ne serait-ce qu'un seul prix AX001 alors tu ne peux pas supprimer le modèle AX001
    • tu mets à NULL => si le modèle AX001 disparait, alors les prix deviennent NULL - Coton - 55€ ; NULL - Laine - 90€
    • tu mets à défault (sous-entendu que la table des prix possède une valeur par défaut pour la colonne qui référence le modèle)
    • tu demandes qu'il ne se passe rien => le modèle AX001 disparait, les lignes contenant le prix AX001 ne changent pas bien que AX001 ne soit plus référencé


    Et tu as des choix équivalents en cas de modification. Si le modèle AX001 change pour BX001, alors tu peux cascader la modification, refuser la modification, ne rien faire, mettre à null ou mettre à défaut.
    Donc quand tu crées ta contrainte, tu dois spécifier ce qui se passe sur "on update" et "on delete" (et MariaDB doit avoir une doc à ce sujet) et ça ça se réfléchit (et pire si tableA liée à tableB elle-même liée à tableC => les contraintes s'exponentialisent)

    Voici par exemple un extrait d'une de mes bdd (mais je bosse sous Postgres et non MySQL donc la syntaxe a quelques différences) où j'associe des personnes avec un titre "M.", "Mme", "Mlle"
    Code sql : 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
    create table "_cat_titre" (
    	"id_titre" smallint not null check ("id_titre" > 0),
    	"sigle" character varying(10) not null check ("sigle" not similar to ' *'),
    	"libelle" character varying(20) not null check ("libelle" not similar to ' *'),
    	primary key ("id_titre")
    ) with (oids=false);
     
    insert into "_cat_titre" values (1, 'M.', 'Monsieur');
    insert into "_cat_titre" values (2, 'Mme', 'Madame');
    insert into "_cat_titre" values (3, 'Mlle', 'Mademoiselle');
    insert into "_cat_titre" values (4, 'Sté', 'Société');
     
    create table "personne" (
    	"id_personne" integer not null default nextval('"seq_personne_id"') check ("id_personne" > 0),
    	"nom" character varying(40) not null check ("nom" not similar to ' *'),
    	"prenom" character varying(30) not null check ("prenom" not similar to ' *'),
    	"comment" text default null check ("comment" not similar to ' *'),
    	"date_creation" date not null check ("date_creation" <= ('today'::text)::date) default ('today'::text)::date,
    	"id_titre" smallint not null,
    	constraint "fk_titre" foreign key ("id_titre")
    		references "_cat_titre" ("id_titre") match full
    		on update cascade on delete restrict,
    	primary key ("id_personne")
    ) with (oids=false);

    Accessoirement, au lieu de passer par Python, passe directement par sql pour faire tes tests sql, ça évitera un intermédiaire et les soucis qui peuvent aller avec. Et si tu utilises un outil d'administration graphique (exemple phpMyAdmin) alors tu peux créer ta bdd, tes tables et leurs contraintes via clic/drag/drop à la souris et regarder le sql que ça génère.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    De plus si je pars du principe que la bdd (et ses tables) existent déjà, comme je l'ai dit je ne vois pas l'utilité de m'embêter à les faire créer par Python, avec ou sans la clause "if not exists"....
    C'est une opinion qui comme toute opinion doit être respectée... cependant, c'est le développeur qui en dernier recours décide en fonction de la situation et du contexte.

    Il est clair que si on doit aller modifier une base de donnée administrée, il faudra pousser le SQL aux administrateurs de la BDD qui pourront vérifier que çà fait bien ce qu'on attend (les specs) avant de les exécuter.

    Maintenant, si je dois créer une petite base de donnée sqlite associée à un utilisateur ou une application les CREATE IF seront tout a fait acceptables.

    note: lorsque je code autre chose que des exemples, j'utilise souvent SQLAlchemy et le CREATE IF est utilisé par défaut. comme quoi une opinion n'est pas la réalité.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 45
    Par défaut
    Sve@r

    Oui je vais poser la question sur le forum mySQL.

  14. #14
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut
    si je reviens sur le code SQL erronée
    hormis le problème de "NUL" il existe un problème avec les varchar dont la longueur n'est pas stipuler ce qui pose problème au fork de MySQL Mariam dB

    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
    CREATE TABLE IF NOT EXISTS t_Solar_Data(
        id_solar_data INT NOT NULL AUTO_INCREMENT,
        updated DATETIME NOT NULL,
        solarflux SMALLINT DEFAULT NULL,
        aindex SMALLINT DEFAULT NULL,
        kindex SMALLINT DEFAULT NULL,
        kindexnt VARCHAR(10) DEFAULT NULL ,
        xray  VARCHAR(10) DEFAULT NULL ,
        sunspots SMALLINT DEFAULT NULL,
        heliumline FLOAT DEFAULT NULL,
        protonflux SMALLINT DEFAULT NULL,
        electonflux SMALLINT DEFAULT NULL,
        aurora SMALLINT DEFAULT NULL,
        normalization FLOAT DEFAULT NULL,
        latdegree FLOAT DEFAULT NULL,
        solarwind FLOAT DEFAULT NULL,
        magneticfield FLOAT DEFAULT NULL,
        geomagfield  VARCHAR(10) DEFAULT NULL ,
        signalnoise  VARCHAR(10) DEFAULT NULL ,
        fof2 FLOAT DEFAULT NULL,
        muffactor FLOAT DEFAULT NULL,
        muf FLOAT DEFAULT NULL,
        PRIMARY KEY(id_solar_data)
    ) ENGINE = InnoDB


    Il existe des outils d'aide a la gestion des bases de données . Par exemple phpMyAdmin qui permet d'accéder a une base MARIANDB (entre autre), ce type d'outil permet de prendre en charge une partie de la modélisation de la base de donnée mais c'est une solution de type interface web qui demande d'avoir un moteur d'interprétation du langage de programmation PHP .

    Il existe aussi la solution d'un produit tel que DBeaver qui ce definie comme un Outil de base de données universel .
    voila ce qu'il en dise sur leur serveur.
    Outil de base de données multiplateforme gratuit pour les développeurs, les administrateurs de bases de données, les analystes et toutes les personnes qui ont besoin de travailler avec des bases de données. Prend en charge toutes les bases de données populaires : MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Apache Hive, Phoenix, Presto, etc.

  15. #15
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par dedalios Voir le message
    il existe un problème avec les varchar dont la longueur n'est pas stipuler ce qui pose problème au fork de MySQL Mariam dB
    Le langage SQL n'est pas 100% compatible d'un SGDB à l'autre... c'est effectivement un soucis qu'on découvre assez rapidement lorsqu'on change de SGDB.

    Plus tard, on découvrira peut être aussi que les moteurs se comportent différemment côté optimisations...

    L'un dans l'autre, on conclura que changer de SGDB n'est pas quelque chose à envisager à la légère... Et que le spécialiste du SGDB X ne sera pas forcément à l'aise avec le SGDB Y.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  16. #16
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut
    pour ma part je dois souvent jouer avec des Bases
    • Oracle
    • Postgressql
    • Sqllite
    • Mariandb


    leurs langages n'est pas très compatible effectivement

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

Discussions similaires

  1. pb oracle création table - foreign key
    Par dédéf dans le forum Oracle
    Réponses: 3
    Dernier message: 29/11/2005, 11h21
  2. Création table et relations
    Par ptitdragon_eric dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/09/2005, 13h37
  3. [noob]création table
    Par ggnore dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/01/2005, 11h18
  4. création table
    Par lepierre dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/09/2004, 11h32

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