>데이터 베이스 >MySQL 튜토리얼 >Laravel 마이그레이션에서 타임스탬프 열의 기본값을 CURRENT_TIMESTAMP로 설정하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-12-03 02:44:14242검색

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 사용 () (라라벨 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()(라라벨 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에 정밀도 0을 명시적으로 지정하세요. 구문 분석 오류. (Laravel 5.0부터 정밀도는 기본적으로 0으로 설정되어 있습니다.)

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

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