IT

여러 TIMESTAMP 컬럼이 있는1개의 Mysql 테이블

itgroup 2022. 11. 17. 21:10
반응형

여러 TIMESTAMP 컬럼이 있는1개의 Mysql 테이블

2인용 테이블 하나 주세요TIMESTAMP컬럼을 클릭합니다.레코드가 생성된 시간을 추적하는 열과 수정된 시간을 추적하는 열.나는 이 값들을 데이터베이스에서 처리하기를 원한다.앱 계층이 이 문제를 생각하지 않았으면 합니다.

만약 당신이 이 모든 것을 가지고 있다면TIMESTAMP로 칸을 달다DEFAULT CURRENT_TIMESTAMP또는ON UPDATE CURRENT_TIMESTAMP다른 것을 가질 수 없다TIMESTAMP기둥.사용할 수 있습니다.DATETIME하지만 디폴트할 방법은 없어요 제가 아는 바로는, 방아쇠 밖에요

컬럼을 그대로 두면 여러 컬럼을 가질있다는 것을 알게 되었습니다.DEFAULT또는ON UPDATE삽입NULL레코드가 생성되면 각각 현재 타임스탬프가 생성됩니다.첫 번째 열의 이 시점부터 자동으로 업데이트됩니다.

이것은 아주 잘 작동하지만 나에게 이상한 느낌을 준다.이것은 버그일 수 있으며 언제든지 패치를 적용할 수 있습니다.만약 이것이 원래 작동 방식이라면 그렇게 해야 한다.나는 즐겁게 길을 떠난다.이게 가장 좋은 방법인지 아니면 방아쇠를 사용해야 하는지 누가 말해줄 수 있나요?

MySQL 문서에 설명되어 있습니다.

또한 NULL 값을 허용하도록 NULL 속성을 사용하여 정의된 경우를 제외하고 TIMESTAMP 열을 NULL 값을 할당하여 현재 날짜시간으로 초기화 또는 업데이트할 수 있습니다.

http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

5.6.1 이전 버전의 MySQL에서는 2개의 IP 주소를 사용할 수 없습니다.TIMESTAMPout 기본값과 null 허용을 올바르게 지정한 경우를 제외하고 동일한 표의 컬럼을 표시합니다.

MySQL 5.6.+는 2개 이상 사용 가능TIMESTAMP컬럼을 표시합니다.

자세한 사항은 이쪽:http://shankargopal.blogspot.in/2013/03/mysql-566-timestamp-columns-and-default.html

MySQL에서는 같은 테이블 내에서 여러 TIMESTAMP 열을 사용할 수 있습니다.다음 예를 참조해 주세요.

CREATE TABLE t1 (
  ts1 TIMESTAMP DEFAULT 0,
  ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                ON UPDATE CURRENT_TIMESTAMP);
CREATE TABLE t2 (
  ts1 TIMESTAMP NULL,
  ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                ON UPDATE CURRENT_TIMESTAMP);
CREATE TABLE t3 (
  ts1 TIMESTAMP NULL DEFAULT 0,
  ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                ON UPDATE CURRENT_TIMESTAMP);

ts1 TIMESTAMP 열은 DEFAULT 0, ts2 TIMESTAMP 열은 DEFAULT 값 CURRENT_TIMESTAMP입니다.자세한 내용은 이쪽 http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

언급URL : https://stackoverflow.com/questions/4851672/one-mysql-table-with-multiple-timestamp-columns

반응형