2009-10-30 6 views
2

Lorsque je essaie de régler la date par défaut et sysdate par défaut am obtenir des erreurs suivantes:MySQL erreurs d'utilisation de mots-clés par défaut

MySQL Query:

create table product_offer_type(object_id INT(19), snapshot_id INT(19), PRIMARY KEY(object_id,snapshot_id), enum_value VARCHAR(64) NOT NULL, external_name VARCHAR(64) NOT NULL, description VARCHAR(255), business_validation INT(1), valid_for_start_date_time DATE DEFAULT '1900-01-10', valid_for_end_date_time DATE DEFAULT '4712-01-01', mutation_date_time DATE SYSDATE, mutation_user VARCHAR(32) DEFAULT 'USER'); 

Message d'erreur:

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 'SYSDATE, mutation_user VARCHAR(32) DEFAULT 'USER')' at line 1 

Tout pointeur serait très apprécié.

+0

Avez-vous des suggestions? – Rachel

+0

Pourquoi les autres réponses ont-elles été supprimées? – Rachel

Répondre

2

Si vous essayez de suivre la dernière date de modification de la ligne, je l'habitude d'utiliser quelque chose comme

mutation_date_time timestamp default current_timestamp, on update current_timestamp

Vous pourriez avoir besoin légère modification si vous voulez vraiment la date et pas horodatage.

+0

Je cherche la date au lieu de l'horodatage, je vais essayer la modification de l'approche fournie et mettre à jour le commentaire dans quelques minutes. – Rachel

+0

ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'current_date, mutation_user VARCHAR (32) DEFAULT' USER ')' à la ligne 1 – Rachel

+0

current_timestamp ne fonctionne qu'avec le type de colonne timestamp, donc vous devrez convertissez votre type de colonne en horodatage pour être en mesure de mettre automatiquement dans ces moments. –