반응형
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'))
반응형
'Programming > MySql' 카테고리의 다른 글
[MYSQL]Invalid default value for '~' DATETIME (0) | 2017.02.13 |
---|---|
MYSQL 다중 ROW의 데이터 UPDATE (0) | 2016.12.23 |
You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. (0) | 2016.12.23 |
Sql 상위 몇개만 쿼리 (0) | 2013.10.04 |
Mysql 원격 접속 설정 및 접속 (0) | 2013.07.02 |