여러 TIMESTAMP 열이있는 하나의 Mysql 테이블
두 개의 TIMESTAMP
열 이있는 하나의 테이블을 갖고 싶습니다 . 레코드가 생성 된시기를 추적하는 열과 수정 된시기를 추적하는 열입니다. 이 값이 데이터베이스에서 처리되기를 원합니다. 내 앱 레이어가 그것에 대해 생각할 필요가 없습니다.
또는가있는 TIMESTAMP
열이 있으면 다른 열을 가질 수 없다는 DEFAULT CURRENT_TIMESTAMP
것을 ON UPDATE CURRENT_TIMESTAMP
알고 있습니다 TIMESTAMP
. 사용할 수는 DATETIME
있지만 트리거 외부에서 기본값으로 사용할 수있는 방법은 없습니다.
레코드를 만들 때 또는 레코드가 생성 될 때 삽입 하여 각 열에 현재 타임 스탬프를 갖도록 함으로써 여러 TIMESTAMP
열 을 가질 수 있음을 발견했습니다 . 그 시점부터 첫 번째 열이 자동으로 업데이트됩니다.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 버전은 TIMESTAMP
기본값을 사용하지 않고 null을 허용하지 않는 한 동일한 테이블에 두 개의 열을 허용하지 않습니다 .
MySQL 5.6. +는 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 열은 VALUE 0의 DEFAULT이고 ts2 TIMESTAMP 열은 CURRENT_TIMESTAMP 값의 DEFAULT입니다. 자세한 정보는 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
'IT TIP' 카테고리의 다른 글
기능적 언어로서의 자바 스크립트 (0) | 2020.12.01 |
---|---|
.Net의 Int128? (0) | 2020.12.01 |
Google Play 게임 서비스-로그인 할 수 없음 (0) | 2020.12.01 |
ADO.NET DataTable에 HTML 테이블 게시 (0) | 2020.12.01 |
x = std :: move (x) 정의되지 않았습니까? (0) | 2020.12.01 |