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 :

Insertion de NULL au lieu de la chaîne vide.


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Par défaut Insertion de NULL au lieu de la chaîne vide.
    Bonjour,

    Je travaille sur un projet sur une base MySQL 5.1.

    J'utilisais auparavant Oracle qui lorsqu'on insère une valeur d'un varchar avec la chaîne vide (''), Oracle insère à la place NULL.

    Est-il possible de paramétrer MySQL pour qu'il se comporte comme Oracle ?

    Merci.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Une chaîne vide et NULL ne sont pas équivalents ; bizarre le comportement d'Oracle !

    Soit la colonne comporte une valeur par défaut et c'est celle là qui sera utilisée en l'absence d'indication de valeur lors d'un INSERT.

    Soit la colonne peut être NULL sans valeur par défaut et elle sera mise à NULL en l'absence d'indication de valeur lors d'un INSERT.

    Soit la colonne est NOT NULL et sans valeur par défaut et elle contiendra une chaîne vide en l'absence d'indication de valeur lors d'un INSERT (valeur par défaut implicite pour une colonne NOT NULL de type alphanumérique).

    Soit vous spécifiez une valeur lors de l'INSERT et c'est cette valeur qui sera affectée à la colonne (éventuellement tronquée si elle est trop longue).

    Soit vous spécifiez NULL pour cette colonne lors de l'INSERT et la colonne sera à NULL si elle n'est pas NOT NULL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    Tu peux utiliser le parametre DEFAULT dans ton champs , comme la dit CinePhil:
    Si la colonne est a null, tu aura bien d'inscrit dasn phpmyadmin par exemple null, mais ta requete te retournera un champs vide.

    par exemple lors de la création de ta table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE IF NOT EXISTS `t_demo` (
    `ID_demo` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `TAVARIABLE` char(20) DEFAULT 'NULL'
    )
    la syntaxe est a verifie, je ne me rappel plus trop.
    Comme sa, si tu fait une insertion avec un champ vide, par default ton champ prendra NULL comme valeur au lieu d'une chaine vide.

    Si tu ne veux pas recréer ta table je te conseilel d'utiliser ALTER TABLE tatable

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ce n'est pas :
    Ça insèrerait la chaîne 'NULL', comme le montre la coloration syntaxique.

    Pour mettre NULL en valeur par défaut, c'est :
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    J'utilisais auparavant Oracle qui lorsqu'on insère une valeur d'un varchar avec la chaîne vide (''), Oracle insère à la place NULL.

    Est-il possible de paramétrer MySQL pour qu'il se comporte comme Oracle ?
    Oui c'est exacte, mais si j'ai bien compris il souhaite une chaine de caractere = "NULL" ?

    Et pas renvoyer un champ NULL = ""

    A moins que je me soit trompé ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/05/2011, 17h11
  2. Récupération ID après INSERT retourne NULL
    Par Jean-Marc68 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 06/12/2007, 19h55
  3. [SQL] Insertion valeur NULL de php vers SQL
    Par tkwleboss dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/11/2007, 13h21
  4. insertion valeur null en tant qu'administrateur
    Par new_wave dans le forum SQL
    Réponses: 3
    Dernier message: 06/11/2007, 11h28
  5. Insertion d'un noeud dans une liste chaînée
    Par habib106 dans le forum Assembleur
    Réponses: 8
    Dernier message: 07/04/2004, 22h34

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