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 :

Problème de NULL dans un CREATE/SELECT


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 133
    Billets dans le blog
    5
    Par défaut Problème de NULL dans un CREATE/SELECT
    Bonjour,

    Dans la phase de migration de MySQL 4.0.17-nt vers MySQL: 5.0.45, je rencontre un problème de NULL sur quelques champs qui ne devraient pas l'être de part le fait que je souhaite que dans ma table, tous les champs soient NULL autorisés.
    Le script étant un CREATE/SELECT, je rencontre une erreur au niveau des UPDATE et INSERT qui suivent cette séquence.
    Or, il s'avère qu'avec la version précédente de MySQL, la 4.x donc, nous n'avions aucun problème mais, du fait de la nouvelle version, le comportement n'est pas celui attendu. J'ai pris quelques infos ça et là en modifiant notamment le fichier my.ini à ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    et en le mettant en Remarque mais sans succès.

    Est-ce que, en dehors de créer préalablement ma table comme il se doit, il existerait une solution pour que mon CREATE/SELECT se conforme strictement à la mise en place de champ NULL dans la V5 ?
    Note:
    Les NULL définis à NON dans ma table créée sont majoritairement des numériques de type decimal(18,1) par exemple. Dans ma source, le champ peut potetiellement être à NULL et non à 0

    Merci pour vos suggestions.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Tes tables sont-elles en InnoDB ou en MyISAM (ou autre ?)

    Quel est ton SQL mode ? (select @@sql_mode)

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 133
    Billets dans le blog
    5
    Par défaut
    Salut Antoun,

    En InnoDB.
    Quel est ton SQL mode ? Là, je ne sais pas, je ne peux te répondre que lundi car là, ze suis @home.
    En fait mon problème c'est que le projet créée plus de 200 tables à la volée dans différentes bases les unes liées de près ou de loin avec les autres.
    Je ne peux pas, techniquement parlant, créer les tables d'abord avec les champs prédéfinis, je suis contraint de procéder en CREATE/SELECT...

    Il me semblait qu'il fallait configurer un truc quelque part dans le my.ini par exemple mais je n'en ai plus souvenir.

    Merci à toi,

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Dans le my.ini, enlève le STRICT_TRANS_TABLES dans la définition du sql-mode, redémarres ton serveur, et reteste.

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 133
    Billets dans le blog
    5
    Par défaut
    Bonsoir,

    Ooops !!!
    Citation Envoyé par Antoun
    Quel est ton SQL mode ?
    J'avais pas capté
    Je l'avais spécifié dans mon premier post
    ...
    Veux tu dire que cette ligne déjà en REM dans mon fichier INI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    doit être, selon ce que tu me préconises, spécifiée comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    Bref, avec ou sans, ça ne change rien :
    _______________________________________
    Erreur
    requête SQL:

    UPDATE myTable SET myTable.myField...
    MySQL a répondu:

    #1048 - Column 'myField' cannot be null
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    Mon @@SQL_MODE = ''...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Bon, je pensais qu'en inhibant le STRICT MODE, tes NULL seraient automatiquement remplacés par des valeurs par défaut, mais apparemment ça ne fonctionne pas...

    Une astuce serait d'ajouter une ligne de NULL à tes CREATE SELECT. Par exemple, cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table argy 
    select fam_id, fam_lib, fam_pere 
    from famille
    doit donc devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table argy 
    select fam_id, fam_lib, fam_pere 
    from famille 
    union all 
    select null, null, null

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

Discussions similaires

  1. Problème : Affichage NULL dans zones de textes
    Par tssi555 dans le forum VB.NET
    Réponses: 7
    Dernier message: 11/08/2008, 13h46
  2. Problème champ NULL dans HTTPWebRequest
    Par thelpi dans le forum C#
    Réponses: 1
    Dernier message: 07/07/2008, 12h00
  3. Problème avec SQL dans un tableadapter (select count())
    Par webgig2002 dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/06/2008, 15h08
  4. Problème avec NULL dans HAVING
    Par Jean-Marc68 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/11/2007, 14h01
  5. Problème de contrainte dans un "CREATE DOMAIN ..."
    Par VenusX117 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2005, 18h06

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