Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2007, 17h28   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 78
Points : 8
Points : 8
Par défaut Problème d'attribut "null"

Bonjour @ tous et @ toutes,

Voilà j'ai un petit problème avec mon serveur Mysql :
En fait sous phpmyadmin l'attribut Null lorsque j'affiche la structure d'une table est désespérément sur "Oui" ...

Lorsque je fais une exportation de la table, dans le create de la table, les not null sont bien là pourtant !!

Mieux que sa si je fais une table avec des champs not null et que j'insère un enregistrement entièrement null (les champ initialisés à null) et bien la requete passe ...


Je m'y perd là !
Pour info la version de phpmyadmin est : phpMyAdmin 2.6.2-Debian-3sarge3
Celle de Mysql : 5.0.22-2bpo1

Mysql provient des dépots Backports.

Merci d'avance pour votre aide.
baallrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h09   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
je ne vois pas trop... pourrais-tu nous donner le résultat d'un SHOW CREATE TABLE de ta table, ainsi que celui de
SELECT @@SQL_MODE
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2007, 10h23   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 78
Points : 8
Points : 8
Résultat du "SELECT @@SQL_MODE;" :

Code :
1
2
3
4
5
6
7
mysql> SELECT @@SQL_MODE;
+------------+
| @@SQL_MODE |
+------------+
|            |
+------------+
1 row IN SET (0.00 sec)


Voici une table de test créée en SQL (pas avec phpmyadmin) :
Code :
1
2
3
4
5
6
CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `text` varchar(50) NOT NULL,
  `machin` varchar(50) NOT NULL,
  `bidule` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Voici le "SHOW CREATE TABLE" :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
mysql> SHOW CREATE TABLE `test`;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| TABLE | CREATE TABLE                                                                                                                                                                          |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `text` varchar(50) NOT NULL,
  `machin` varchar(50) NOT NULL,
  `bidule` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row IN SET (0.00 sec)
baallrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 00h20   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
pour ce qui est de phpMyAdmin, je n'en sais franchement rien. Pour l'acceptation indue des NULL, tente un INSERT comme ça :

set @@sql_mode = 'STRICT_ALL_TABLES' ;
INSERT INTO test (machin) values (null) ;

Attention, dans phpMyAdmin il faut absolument passer les deux requêtes en même temps (la première n'est valable que pour la session, et phpMyAdmin ouvre et ferme une sessions à chaque envoi).
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 11h08   #5
Invité régulier
 
Inscription : novembre 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 78
Points : 8
Points : 8
Hum alors voyons voir les résultats des instructions que vous m'avez transmises (encore merci !!) :

Code :
1
2
3
4
5
6
mysql> SET @@sql_mode = 'STRICT_ALL_TABLES' ;
Query OK, 0 rows affected (0.00 sec)
 
 
mysql> INSERT INTO test (machin) VALUES (NULL) ;
ERROR 1364 (HY000): FIELD 'text' doesn't have a default value
D'après ce que je vois, MySQL fonctionne bien, l'insertion d'un champs null échoue.

J'ai injecté la seconde requête sans la première dans phpmyadmin et celle-ci ne passe pas. Je commence a penser que mon serveur est marabouté ...

Apparemment tout fonctionne bien sauf phpmyadmin qui n'affiche pas correctement la valeur pour l'attribut null (oui ou non).

Mon diagnostique est-il correct ?

Encore merci !!

Vincent
baallrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 11h25   #6
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
juste pour être sûr, essaie d'insérer explicitement un NULL dans toutes les colonnes, avec et sans le Strict mode.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 12h08   #7
Invité régulier
 
Inscription : novembre 2004
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 78
Points : 8
Points : 8
Alors, dans tous les cas j'ai cette erreur :

Code :
ERROR 1048 (23000): Le champ 'text' ne peut être vide (NULL)
Par conséquent je pense que mon phpmyadmin a un bug au niveau de l'affichage de l'attribut null.
C'est assez étrange, d'autant plus que c'est le phpmyadmin de la Debian Sarge.

Je vais orienter mes recherches là.

Merci encore.

Je ne flag pas le sujet comme étant Résolu. Je le ferais lorsque j'aurais la solution.
baallrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h37.


 
 
 
 
Partenaires

Hébergement Web