php - MySQL 5.7 버전 이후 타임스탬프 문제
仅有的幸福
仅有的幸福 2017-05-16 13:09:07
0
3
678

환경:

>버전 선택();
> 5.7.16

질문:

테이블에는 created_atupdated_at라는 두 개의 필드가 있습니다. 두 필드 유형 모두 created_at입니다. 기본값은 CURRENT_TIMESTAMP이고, updated_at의 기본값은 0000-00-00 00:00:00로 설정된 경우입니다. 문제가 발생하면 다음 문을 실행하여 테이블을 생성하거나 오류를 보고하세요.

구문 오류 또는 액세스 위반: 1067 'updated_at'에 대한 기본값이 잘못되었습니다

updated_at의 기본값을 CURRENT_TIMESTAMP로 변경하면 원활하게 실행되지만 Mysql5.7 이하 버전에서는 하나의 테이블을 지원하지 않는 또 다른 문제가 발생합니다. 기본값이 CURRENT_TIMESTAMP인 두 개의 timestamp 필드가 있습니까?

그렇다면 모든 마스터에게 timestamp의 기본값 문제를 어떻게 해결할 수 있는지 물어보십시오. MySQL의 상위 버전과 하위 버전 모두와 호환됩니다.

&^ - &^

仅有的幸福
仅有的幸福

모든 응답(3)
小葫芦

5.7에서는 기본값이 1970년에서 20년 전으로 추정되는 범위 내에 있어야 합니다. 값을 2000-01-01 00:00:00으로 설정하고 시도해 보세요.

阿神

32비트 시스템은 2038년에 나올 것 같습니다. 64비트 시스템을 사용하십시오. 또한 타임스탬프를 사용하여 데이터를 저장해 보세요.

滿天的星座

update_at 필드의 요구 사항 관점에서 이 문제를 살펴보면, 우리는 이 필드가 레코드의 업데이트 시간을 표로 작성하는 데 사용되어야 한다는 것을 말 그대로 이해합니다.
업데이트 시간에 기본값이 있지만, 기본값이 레코드 업데이트/추가 시 삽입된 현재 데이터베이스 시간이 아닌 경우(주제는 0000-00-00 00:00:00 사용) 현재 데이터베이스 이외의 모든 값 시간이 사용됩니다. 이 필드의 의미는 존재하지 않습니다(중복/잘못된 데이터).
데이터베이스에 잘못된 데이터가 있으면 저장할 필요가 없습니다.
요약하자면, 질문자는 update_at 필드에 기본값을 지정하지 않는 것이 가능한지 알고 싶습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿