>  기사  >  백엔드 개발  >  Laravel 마이그레이션에서 기본 타임스탬프를 현재 타임스탬프로 어떻게 설정합니까?

Laravel 마이그레이션에서 기본 타임스탬프를 현재 타임스탬프로 어떻게 설정합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-20 11:40:02539검색

How Do I Set the Default Timestamp to the Current Timestamp in Laravel Migrations?

Laravel 마이그레이션: 기본 타임스탬프를 현재 타임스탬프로 설정

Laravel에서 타임스탬프는 일반적으로 레코드가 생성되거나 업데이트된 시기와 같은 활동을 추적하는 데 사용됩니다. 기본적으로 이러한 타임스탬프는 0000-00-00 00:00으로 설정됩니다. 하지만 기본값을 현재 타임스탬프로 자동 설정하는 것이 유용할 수 있습니다.

DB::raw() 사용

정기적으로 업데이트하려는 타임스탬프의 경우 DB를 사용하면 됩니다. ::raw() 함수를 사용하여 CURRENT_TIMESTAMP를 기본값으로 지정합니다.

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

이렇게 하면 레코드가 처음 생성될 때와 업데이트될 때 모두 Create_at 열에 항상 현재 타임스탬프가 포함됩니다.

useCurrent() 또는 useCurrentOnUpdate() 사용

또는 useCurrent() 또는 useCurrentOnUpdate() 메서드를 사용하여 동일한 결과를 얻을 수 있습니다.

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

useCurrent () 메소드는 생성 및 업데이트 모두에 대해 현재 타임스탬프를 기본값으로 할당하고, useCurrentOnUpdate()는 업데이트에만 기본값을 설정합니다.

MySQL ON UPDATE 절

MySQL의 경우 다음을 수행할 수 있습니다. DB::raw():

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

Gotchas

  • MySQL: 내에서 ON UPDATE 절을 사용하세요. MySQL 5.7부터는 명시적으로 설정해야 할 수도 있습니다. 타임스탬프 열에 대한 유효한 기본값(0000-00-00 00:00:00은 더 이상 허용되지 않음).
  • PostgreSQL 및 Laravel 4.x: Laravel 4.x에서는 CURRENT_TIMESTAMP를 기본 정밀도로 사용하는 경우 타임스탬프 구문 분석에 문제가 발생할 수 있습니다. 이를 방지하려면 대신 CURRENT_TIMESTAMP(0)을 사용하세요.

위 내용은 Laravel 마이그레이션에서 기본 타임스탬프를 현재 타임스탬프로 어떻게 설정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.