programing

mysql 레코드 생성 타임스탬프 자동 저장

minimums 2023. 10. 10. 20:11
반응형

mysql 레코드 생성 타임스탬프 자동 저장

타임스탬프가 생성될 때마다 mysql이 레코드 행에 자동으로 저장할 수 있는 방법이 있습니까?current_timestamp를 기본값으로 사용하는 타임스탬프(데이터 유형)를 사용하려고 했지만 레코드가 업데이트될 때마다 업데이트된다는 것을 깨달았습니다.타임스탬프 생성을 저장할 수 있는 무언가가 필요합니다.

감사해요.

CURRENT_TIMESTamp를 사용하도록 DEFAULT 제약 조건을 설정합니다.

CREATE TABLE ...
  your_date_column DATETIME DEFAULT CURRENT_TIMESTAMP
  ...

기존 테이블의 경우 ALTER TABLE 문을 사용합니다.

ALTER TABLE your_table
ALTER COLUMN date_column SET DEFAULT CURRENT_TIMESTAMP

date_column에 값을 지정하지 않으면 기본값은 INSERT 문이 실행된 날짜 및 시간이 됩니다.NULL그리고.DEFAULT열이 null일 경우 기본 제약 조건을 사용하려면 유효한 값을 선택합니다.

MySQL의 타임스탬프에 대한 자세한 내용은 https://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html 에서 확인할 수 있습니다.

중요한 점은 타임스탬프 열을 DEFAULT CURRENT_TIMESTamp 절로 정의하고 ON UPDATE 절이 없는 경우 열에 기본값에 대한 현재 타임스탬프가 있지만 자동으로 업데이트되지 않는다는 것입니다.

하지만 주의하세요.분명히 해야 할 일은 타임스탬프 열이 두 개 있는 것입니다. 하나는 생성 시간이고 다른 하나는 마지막 업데이트 시간입니다.안타깝게도 MySQL이 이를 지원하지 않는다는 것은 문서화된 MySQL 제한 사항입니다.MySQL에 이상한 제한이 있는 이유를 모르겠습니다. 이 일반적인 사용 사례에 문제가 있는 다른 주요 데이터베이스는 없습니다.

FYI = "Dat time"은 날짜와 시간이 고정되어 있습니다."타임스탬프"는 가변 날짜 및 시간 -- 시스템 시간입니다.

두 개의 열이 있습니다.생성 색상 하나, 업데이트 색상 하나.

다음 명령은 hello 테이블을 만듭니다.
1. 아이디 정수
2. create_at with current time.

create table hello (id int, created_at datetime DEFAULT CURRENT_TIMESTAMP);
Create Table myTableName
     (
       userId int primary key
       userJoiningDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
     );

https://www.mysqltutorial.org/mysql-timestamp.aspx

타임 스탬프를 만들 때 기록되는 열을 만드는 방법은 다음과 같습니다.해당 행이 변경/업데이트 될 때마다 timeStamp를 업데이트하는 방법을 알고 싶으시면 위 링크를 확인해주세요.

테스트에서 선택 * 타임스탬프 >= CURDATE() 및 타임스탬프 < CURDATE() + 타임스탬프별 1일 간격 순서;

언급URL : https://stackoverflow.com/questions/4870536/mysql-automatically-store-record-creation-timestamp

반응형