ホームページ >データベース >mysql チュートリアル >Laravel の移行でタイムスタンプ列のデフォルト値を CURRENT_TIMESTAMP に設定する方法は?

Laravel の移行でタイムスタンプ列のデフォルト値を CURRENT_TIMESTAMP に設定する方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-03 02:44:14236ブラウズ

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

Laravel 移行でタイムスタンプ列のデフォルト値を現在のタイムスタンプに設定する

質問:

デフォルト値 CURRENT_TIMESTAMP でタイムスタンプ列を作成するにはどうすればよいですかLaravelスキーマを使用したON UPDATE CURRENT_TIMESTAMPビルダー/移行?

答え:

DB::raw() を使用する (すべてのデータベース):

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

useCurrent を使用する() (Laravel 5.1.25 ):

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

MySQL のみ:

ON UPDATE で DB::raw() を使用する:

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

useCurrent() とuseCurrentOnUpdate() (Laravel 8.36.0) ):

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

注意事項:

  • MySQL:

    • MySQL 5.7 以降、 0000-00-00 00:00:00 は有効な日付ではありません。 useCurrent() を使用してタイムスタンプ列を現在のタイムスタンプにデフォルト設定するか、null 可能にします。
  • PostgreSQL および Laravel 4.x:

    • 回避するには、CURRENT_TIMESTAMP までのゼロの精度を明示的に指定します。解析エラー。 (Laravel 5.0 以降、精度はデフォルトでゼロに設定されます。)

以上がLaravel の移行でタイムスタンプ列のデフォルト値を CURRENT_TIMESTAMP に設定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。