ON UPDATE CURRENT_TIMESTAMP는 명시적 타임스탬프가 없는 업데이트로 인해 현재 타임스탬프 값이 업데이트됨을 정의합니다.
ALTER 명령을 사용하여 열에서 ON UPDATE CURRENT_TIMESTAMP를 제거할 수 있습니다.
구문은 다음과 같습니다.
ALTER TABLE yourTableName CHANGE yourTimeStampColumnName yourTimeStampColumnName timestamp NOT NULL default CURRENT_TIMESTAMP;
위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table removeOnUpdateCurrentTimeStampDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > Name varchar(20), - > UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP - > ); Query OK, 0 rows affected (0.54 sec)
DESC 명령을 사용하여 테이블의 설명을 확인하십시오.
쿼리는 다음과 같습니다
mysql> desc removeOnUpdateCurrentTimeStampDemo;
다음은 출력입니다.
+---------------------+-------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+-------------------+-----------------------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | UserUpdateTimestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +---------------------+-------------+------+-----+-------------------+-----------------------------+ 3 rows in set (0.04 sec)
이제 CURRENT_TIMESTAMP 업데이트에 있는 Extra 필드를 살펴보십시오. ON UPDATE CURRENT_TIMESTAMP를 제거하는 쿼리는 다음과 같습니다.
mysql> alter table removeOnUpdateCurrentTimeStampDemo - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP; Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
표의 설명을 다시 한 번 확인하세요.
쿼리는 다음과 같습니다
mysql> desc removeOnUpdateCurrentTimeStampDemo;
다음은 출력입니다.
+---------------------+-------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+-------------------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | UserUpdateTimestamp | timestamp | NO | | CURRENT_TIMESTAMP | | +---------------------+-------------+------+-----+-------------------+----------------+ 3 rows in set (0.00 sec)
기본 CURRENT_TIMESTAMP를 제거하려는 경우 쿼리는 다음과 같습니다.
mysql> alter table removeOnUpdateCurrentTimeStampDemo - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL; Query OK, 0 rows affected (0.12 sec) Records: 0 Duplicates: 0 Warnings: 0
표의 설명을 다시 한 번 확인하세요.
쿼리는 다음과 같습니다
mysql> desc removeOnUpdateCurrentTimeStampDemo;
다음은 출력입니다.
+---------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | UserUpdateTimestamp | timestamp | NO | | NULL | | +---------------------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
이제 위의 샘플 출력을 보면 ON UPDATE CURRENT TIMESTAMP가 제거되었습니다.