Requête SQL : CREATE TABLE et DEFAULT [Résolu]

Signaler
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
bonjour,

je cherche depuis un bout de temps, mais en vain,

je voudrais créer une table, avec un champ date de type DATE, mais qui prendrai comme valeur par défaut, la date de l'ajout de la ligne, du genre :

CREATE TABLE membre (
id INT NOT NULL,
nom VARCHAR(30) NOT NULL,
date_inscription DATE DEFAULT "CURRENT_DATE",
PRIMARY KEY pk_membre (id)
);

mais il m'affiche "date_inscription | 0000-00-00" à chaque INSERT d'un nouvel éléments à la place de la 2006-09-09,
si qu'un peut m'aider ??
merci

4 réponses

Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

ça marche aussi, mais je voulais le mettre directement
dans la Table, par défaut, mais bon, c'est surtout que je voulais
savoir pourquoi mon DEFAULT marchait à la compil' mais qu'il m'affiche
0000-00-00 après ...

1. Il n'y a pas de compilation ici, juste une execution de requete :-)
2. Il n'y a pas d'erreur lors de la création de la table pour une valeur par defaut bidon. Ce qui fait que tu pourrais mettre ...

CREATE TABLE membre (
id INT NOT NULL,
nom VARCHAR(30) NOT NULL,
date_inscription DATE DEFAULT "TOTO",
PRIMARY KEY pk_membre (id)
);
... et ça devrait passer. Ca ne signifie pas que le "CURRENT_DATE" soit accepté.
il est dit dans la doc :

Illegal
DATETIME
,
DATE
, or
TIMESTAMP
values are converted to the
“zero” value of the appropriate type
(
'0000-00-00 00:00:00'
,
'0000-00-00'
, or
00000000000000
).

2. il semblerait que ça ne marche pas avec DATE. si tu veux faire comme ça, utilise un champ TIMESTAMP et ça passera

voilà un peu plus d'infos :-)

++
24K
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

tu peux toujours utiliser la fonction NOW() quand tu postes ta ligne dans ta table :

INSERT INTO membre VALUES(0,"toto",NOW());

++
24K
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

ouay,

sinon INSERT INTO membre VALUES(0,"toto",CURRENT_DATE); ou
INSERT INTO membre VALUES(0,"toto",CURDATE());

ça marche aussi, mais je voulais le mettre directement dans la Table, par défaut, mais bon, c'est surtout que je voulais savoir pourquoi mon DEFAULT marchait à la compil' mais qu'il m'affiche 0000-00-00 après ...

peut-être y a-t-il une astuce mais merci quand-même 18karas :o)
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

merci bcp pour ces infos