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

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

Linda Hamilton
リリース: 2024-12-03 02:44:14
オリジナル
242 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート