Programming/MySql
[MySql] Insert 할때 MAX 값에서 +1 하기
생각하는로뎅
2017. 2. 15. 11:19
반응형
1. MySql 5 이상부터 해당되는것 같다.
2. 사용하기 앞서, MySql은 from 절과 update target 모두 같을 수 없다고 한다.
3. IDENTIFICATION_NUMBER 컬럼의 MAX 값을 구해서 INSERT 할때 자동으로 IDENTIFICATION_NUMBER 컬럼 값에 MAX 값 +1 하고자하는 쿼리문이다.
여기서 주의해야할점은 2번에서 언급했던것과 같이 from절과 update target 모두 같을 수 없기 때문에 alias 를 이용해서 우회하도록 한다.
(1) (첫번째줄 USER_INFO) = (네번째줄 USER_INFO) 같을 수 없다.
(2) (첫번째줄 USER_INFO) = (네번째줄 USER_INFO AS T1) alias 를 주면 사용 가능하다.
INSERT INTO USER_INFO (UUID, SCHOOL_ID, GCM_TOKEN, USER_TYPE, IDENTIFICATION_NUMBER)
VALUES ('TESET3', 'SCH1', '', 'STUDENT', (SELECT ifnull(MAX(IDENTIFICATION_NUMBER),0)+1 FROM USER_INFO AS T1 WHERE SCHOOL_ID = 'SCH1'))
반응형