>  기사  >  데이터 베이스  >  Laravel 마이그레이션에서 기본 타임스탬프 값을 설정하는 방법은 무엇입니까?

Laravel 마이그레이션에서 기본 타임스탬프 값을 설정하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-22 14:59:13773검색

How to Set Default Timestamp Values in Laravel Migrations?

Laravel 마이그레이션을 사용하여 기본 타임스탬프 값 설정

Laravel Schema Builder는 데이터베이스 테이블을 생성하고 수정하는 편리한 방법을 제공합니다. 그러나 생성 및 업데이트 시 기본 타임스탬프 값을 현재 타임스탬프로 설정하는 데 문제가 발생하는 경우가 있습니다.

timestamps() 메서드

일반적으로 timestamps() 메서드는 Created_at 및 selected_at 타임스탬프 열을 자동으로 관리하는 데 사용됩니다. 하지만 이 방법은 기본값을 '0000-00-00 00:00:00'으로 설정합니다.

해결책: DB::raw() 및 useCurrent()

CURRENT_TIMESTAMP의 기본값을 설정하려면 다음을 사용하세요. DB::raw():

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

Laravel 5.1.25부터 useCurrent() 메소드를 사용할 수도 있습니다:

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

MySQL ON UPDATE 절

MySQL의 경우 다음을 사용하여 ON UPDATE 절을 지정할 수 있습니다. DB::raw():

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

Laravel 8.36.0부터 useCurrentOnUpdate()를 다음과 함께 사용할 수 있습니다. useCurrent():

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

문제점

  • MySQL: MySQL 5.7 이후, '0000-00-00 00:00 :00'은 유효하지 않습니다. useCurrent()를 사용하거나 타임스탬프를 null 허용으로 설정하세요.
  • PostgreSQL 및 Laravel 4.x: CURRENT_TIMESTAMP(0)를 사용하여 정밀도 0을 보장하고 Carbon 구문 분석 문제를 방지하세요.

위 내용은 Laravel 마이그레이션에서 기본 타임스탬프 값을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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