티스토리 뷰

1 num 기본 int(10) 아니오 없음 AUTO_INCREMENT 변경 변경 삭제 삭제
더보기 더보기
2 tablename varchar(30) utf8_general_ci 예 NULL 변경 변경 삭제 삭제
더보기 더보기
3 item varchar(20) utf8_general_ci 예 NULL 변경 변경 삭제 삭제
더보기 더보기
4 parentnum text utf8_general_ci 예 NULL 변경 변경 삭제 삭제
더보기 더보기
5 picname text utf8_general_ci 예 NULL 변경 변경 삭제 삭제
더보기 더보기
6 realname text utf8_general_ci 예 NULL 변경 변경 삭제 삭제
더보기 더보기

위의 테이블에 따로 insert 명령을 넣지 않고 자료의 저장시간을 저장하도록 컬럼을 지정할 수 있나?

MySQL에서 자료의 저장 시간을 자동으로 기록하려면 TIMESTAMP 또는 DATETIME 데이터 타입을 사용하고, DEFAULT CURRENT_TIMESTAMP를 설정하면 됩니다. 이를 통해 INSERT 명령에 따로 값을 지정하지 않아도 저장 시간이 자동으로 기록됩니다.

방법

다음은 위 테이블에 저장 시간을 기록하는 created_at 컬럼을 추가하는 SQL 예제입니다:

ALTER TABLE your_table_name
ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

설명

  • created_at: 새로 추가된 컬럼 이름입니다. 원하는 이름으로 변경할 수 있습니다.
  • TIMESTAMP: 저장 시간을 기록하기 위한 데이터 타입입니다.
  • DEFAULT CURRENT_TIMESTAMP: 레코드가 삽입될 때 현재 시간을 자동으로 기록합니다.

업데이트 시간까지 자동으로 기록하려면?

저장 시간뿐 아니라 업데이트 시간도 기록하려면 ON UPDATE CURRENT_TIMESTAMP 옵션을 추가할 수 있습니다:

ALTER TABLE your_table_name
ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

결과

  • created_at: 자료가 처음 저장된 시간.
  • updated_at: 자료가 수정된 시간.

이 두 옵션을 활용하면 INSERT 및 UPDATE 시 별도의 작업 없이 저장 및 수정 시간을 관리할 수 있습니다.

아래는 picuploads 테이블에 created_atupdated_at 컬럼을 추가하여 자료의 저장 시간과 수정 시간을 자동으로 기록하는 SQL 문장입니다:

ALTER TABLE picuploads
ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

설명

  1. ADD COLUMN created_at:
    • TIMESTAMP: 날짜와 시간을 기록하는 데이터 타입.
    • DEFAULT CURRENT_TIMESTAMP: 자료가 저장될 때 현재 시간을 자동으로 기록.
  2. ADD COLUMN updated_at:
    • TIMESTAMP: 날짜와 시간을 기록.
    • DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP: 자료가 저장될 때 현재 시간을 기록하고, 자료가 수정될 때 자동으로 시간을 갱신.

결과

  • created_at: 데이터가 처음 삽입된 시간을 자동으로 기록합니다.
  • updated_at: 데이터가 삽입될 때와 수정될 때 자동으로 갱신됩니다.

이 SQL 문장을 실행하면 picuploads 테이블에 두 컬럼이 추가되고 자동 시간 기록 기능이 활성화됩니다. 

반응형
댓글