>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 열을 추가하면 ''created_at'에 대한 잘못된 기본값' 오류가 발생하는 이유는 무엇입니까?

MySQL에서 열을 추가하면 ''created_at'에 대한 잘못된 기본값' 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-02 11:48:10897검색

Why Does Adding a Column Result in an

Created_At에 대한 잘못된 기본값

문제:

테이블을 변경하려고 할 때 새 열을 추가하면 오류:

ERROR 1067 (42000): Invalid default value for 'created_at'

타임스탬프 열을 수정하지 않았음에도 불구하고.

해결책:

오류는 sql_modes에서 발생합니다. 문제를 해결하려면:

  1. SQL 모드 확인:
show variables like 'sql_mode' ;
  1. 문제가 있는 모드 비활성화:

에서 다음 모드를 제거합니다. sql_mode:

NO_ZERO_IN_DATE
NO_ZERO_DATE

이러한 모드는 최신 MySQL 버전에 기본적으로 존재합니다.

전역 설정:

시스템 전체 변경의 경우, 다음을 루트로 실행합니다:

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

추가 참고:

  • 이제 오류를 발생시키지 않고 새 열을 추가할 수 있습니다.
  • created_at에 대해 기본 NOT NULL 값을 사용하려는 경우 이를 명시적으로 지정할 수 있습니다. :
ALTER TABLE investments ADD bank TEXT DEFAULT NOT NULL;

위 내용은 MySQL에서 열을 추가하면 ''created_at'에 대한 잘못된 기본값' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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