DB/MySQL

CURRENT_TIMESTAMP를 default로 셋팅시 datagrip 오류

seungdols 2023. 2. 16. 11:07
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;

직접 입력 하게 되면, 정상적으로 변경 된다.

ref. https://youtrack.jetbrains.com/issue/DBE-17447/Alter-syntax-error-of-MySQL-table-in-DataGrip-2022.3.1

datagrip쪽 issue에 등록 했는데 설명을 잘 했는지 모르겠다.

답변으로 받은 부분이 정답인 것 같다. Jetbrains 측의 의견으로는 일반적으로 alter table column 쿼리가 더 유용하며, 버그는 괄호 누락이 문제라고 한다. 

https://youtrack.jetbrains.com/issue/DBE-17447/Alter-syntax-error-of-MySQL-table-in-DataGrip-2022.3.1#focus=Comments-27-6998470.0-0

alter table issue alter column created_at set default (CURRENT_TIMESTAMP)​
 

Alter syntax error of MySQL table in DataGrip (2022.3.1) : DBE-17447

What steps will reproduce the problem? 1. Create DDL TABLE 1. "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)

youtrack.jetbrains.com

 

 

 

반응형

'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