[MySql] Insert 할때 MAX 값에서 +1 하기

Programming/MySql 2017. 2. 15. 11:19 Posted by 생각하는로뎅
반응형

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'))


반응형