9 votes

Comment définir la valeur par défaut d'une colonne mysql comme unix_timestamp ?

Je pensais à quelque chose comme ça :

`post_modified` int(11) NOT NULL DEFAULT UNIX_TIMESTAMP (NOW ()) ON UPDATE UNIX_TIMESTAMP (NOW ()),

Mais ce code ne fonctionne pas.

6voto

Non, vous ne pouvez pas l'utiliser comme vous l'avez montré.

De la doc sur les types de données à MySql :

" La valeur par défaut doit être une constante ; elle ne peut pas être une fonction ou une expression. Cela signifie, par exemple, que vous ne pouvez pas définir la valeur par défaut d'une colonne de date comme étant la valeur d'une fonction telle que NOW() ou CURRENT_DATE. L'exception est que vous pouvez spécifier CURRENT_TIMESTAMP comme valeur par défaut pour une colonne TIMESTAMP."

Regardez la réponse ci-dessous pour une solution de contournement :

Est-il possible de créer une colonne avec un UNIX_TIMESTAMP par défaut dans MySQL ?

J'espère que cela vous aidera !

6voto

Arjun Raj Points 473

Note : Je n'ai aucune idée de la performance de l'appareil. TRIGGER MYSQL

Veuillez consulter les liens suivants

  1. Identifiez certains des inconvénients de la mise en œuvre des déclencheurs du serveur SQL.

  2. Utilisation des déclencheurs

Vous pouvez créer des déclencheurs pour cela.

pour l'insertion

CREATE TRIGGER {trigger_name} BEFORE INSERT ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());

pour l'actualisation

CREATE TRIGGER {trigger_name} BEFORE UPDATE ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X