2009-10-30 2 views
1

Comment peut-on définir un élément à une date par défaut dans mysql?MySQL Syntaxe pour le réglage par défaut Date

  • Dans oracle nous ferions quelque chose comme

    start_date DATE DEFAULT to__date ('01011900', 'JJMMAAAA')

    mutation_date_time DATE DEFAULT SYSDATE

    CONTRAINTE entity_specification UNIQUE (external_name, start_date_time , end_date_time))

Nous avons également un site ou une ressource où nous pouvons obtenir la syntaxe équivalente de MySQL à Oracle Syntax.

Mise à jour

J'ai essayé de le faire comme mentionné en réponse mais encore une fois je reçois un message d'erreur:

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_timeDATE DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user VARCHAR(32) DEFAULT 'USER'); 
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 'DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user' at line 1 
mysql> 
+0

Vous avez manqué un espace ici "valid_for_end_date_timeDATE". – Jason

Répondre

2

Il suffit de passer une chaîne formatée.

start_date DATE DEFAULT '1900-01-01' 
2

Pour une date par défaut fixée sur un champ de date, le format est 'AAAA-MM-JJ', comme start_date DATE DEFAULT '2009-10-30'. DATETIME serait 'AAAA-MM-JJ HH: MM: SS'. Pour une date dynamique basée sur la date actuelle, vous pouvez utiliser DEFAULT CURRENT_TIMESTAMP si vous utilisez un champ TIMESTAMP; sinon, il n'est pas possible d'utiliser une fonction comme DEFAULT dans MySQL. Les champs TIMESTAMP sont au format 'AAAA-MM-JJ HH: MM: SS'. Sinon, vous devez obtenir la date actuelle dans votre code avant d'insérer les données.

Questions connexes