programing

mysql 테이블 열 기본값을 어떻게 변경합니까?

goodcopy 2021. 1. 14. 23:16
반응형

mysql 테이블 열 기본값을 어떻게 변경합니까?


모든 업데이트에서 timestamp기본값 current_timestamp및 업데이트 되는 유형의 열이있는 테이블이 current_timestamp있습니다.

이 열에서 "업데이트시"기능을 제거하고 싶습니다. alter 문을 어떻게 작성합니까?

다음을 시도했습니다.

ALTER TABLE mytable alter column time  set DEFAULT now();

그러나 이것은 작동하지 않았습니다.


Pete는 거의 정확했지만 'change'에 대해 잘못된 구문을 사용했습니다.

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

열 이름을 반복해야합니다. 또한 열 이름 시간을 이스케이프하기 위해 작은 따옴표 대신 백틱을 사용하여 시간의 mysql 열 유형으로 해석되지 않도록하십시오.

CURRENT_TIMESTAMP의 DEFAULT를 지정하면 MySQL은 더 이상 열을 자동으로 업데이트하지 않습니다. 로부터 MySQL의 매뉴얼 :

DEFAULT CURRENT_TIMESTAMP 절이 있고 ON UPDATE 절이없는 경우 열에는 기본값에 대한 현재 타임 스탬프가 있지만 자동으로 업데이트되지는 않습니다.


AFAIK는 NOW ()와 같은 함수를 기본값으로 사용할 수 없습니다.

시험

ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

(이스케이프 및 필드 이름의 두 번째 사용을 추가하도록 편집 됨)

참조 URL : https://stackoverflow.com/questions/1770203/how-do-i-alter-a-mysql-table-column-defaults

반응형