create table issue
(
id bigint auto_increment,
amount decimal(19, 2) not null,
created_at timestamp not null,
modified_at timestamp not null,
constraint issue_pk
primary key (id)
);
위와 같이 테이블을 구성하고 테스트를 해본다.
created_at 컬럼에 빈값으로 넣어도 현재 시간을 저장하고 싶어졌을때, default 값을 넣어주어야 한다.
그런데, timestamp 타입의 컬럼에 default 값을 넣을때 문제가 생긴다!
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_TIMESTAMP' at line 2.
사실 아래처럼 sql이 작성 되어야 맞는데, timestamp 타입만 좀 이상하다.
alter table issue
MODIFY `created_at` timestamp DEFAULT CURRENT_TIMESTAMP;
직접 입력 하게 되면, 정상적으로 변경 된다.
datagrip쪽 issue에 등록 했는데 설명을 잘 했는지 모르겠다.
답변으로 받은 부분이 정답인 것 같다. Jetbrains 측의 의견으로는 일반적으로 alter table column 쿼리가 더 유용하며, 버그는 괄호 누락이 문제라고 한다.
alter table issue alter column created_at set default (CURRENT_TIMESTAMP)
반응형
'DB > MySQL' 카테고리의 다른 글
[HY000][1093] You can't specify target table 'XXX' for update in FROM clause (0) | 2023.02.01 |
---|---|
auto_increment란? (0) | 2014.05.26 |