J'utilise MySQL (personne est parfait), la version 4.1 et je suis utilisé pour définir des colonnes d'horodatage comme:Définir la valeur de date par défaut dans MySQL, similaire à horodater
ALTER TABLE foo ADD creation TIMESTAMP DEFAULT NOW() ;
Je voudrais faites exactement la même chose, mais pour un champ DATE. La raison étant que je n'ai pas besoin d'une précision TIMESTAMP et qu'aucun index fonctionnel n'existe dans MySQL, je ne peux pas accéder rapidement aux lignes avec une date donnée (quelle que soit l'heure de la journée). J'ai donc essayé ce qui suit, mais il ne fonctionne tout simplement pas:
ALTER TABLE foo ADD creation_date DATE DEFAULT CURDATE() ;
ERROR 1067 (42000): Invalid default value for 'creation_date'
Ou encore
ALTER TABLE foo ADD creation_date DATE DEFAULT DATE(NOW()) ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(now())' at line 1
Ce qui ne fonctionne pas non plus.
Des idées?
Hum, donc il n'y a pas de solution MySQL pure pour 4.1? – jeje
Définissez la date à l'aide de CURDATE() lorsque vous insérez ou mettez à jour la ligne. –
Yep .. solution côté client :( – jeje