Maison >base de données >tutoriel mysql >Comment définir la valeur par défaut d'une colonne d'horodatage sur CURRENT_TIMESTAMP dans les migrations Laravel ?

Comment définir la valeur par défaut d'une colonne d'horodatage sur CURRENT_TIMESTAMP dans les migrations Laravel ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-03 02:44:14242parcourir

How to Set a Timestamp Column's Default Value to CURRENT_TIMESTAMP in Laravel Migrations?

Définition de la valeur par défaut de la colonne d'horodatage sur l'horodatage actuel avec les migrations Laravel

Question :

Comment puis-je créer une colonne d'horodatage avec une valeur par défaut de CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP à l'aide du schéma Laravel Constructeur/Migrations ?

Réponse :

Utilisation de DB::raw() (toutes les bases de données) :

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));

Utilisation de useCurrent () (Laravel 5.1.25 ):

$table->timestamp('created_at')->useCurrent();

Pour MySQL uniquement :

Utilisation de DB::raw() avec ON UPDATE :

$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));

Utilisation de useCurrent() et useCurrentOnUpdate() (Laravel 8.36.0 ):

$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();

Les pièges :

  • MySQL :

    • À partir de MySQL 5.7, 0000-00-00 00:00:00 n’est pas une date valide. Colonnes d'horodatage par défaut sur les horodatages actuels à l'aide de useCurrent(), ou rendez-les nullables.
  • PostgreSQL et Laravel 4.x :

    • Spécifiez explicitement une précision de zéro pour CURRENT_TIMESTAMP pour éviter les erreurs d'analyse. (Depuis Laravel 5.0, la précision est définie sur zéro par défaut.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn