on duplicate key update 를 사용하면 auto_increment 의 기존값은 보존이 되지만, 이후 같은 키가 있어서 업데이트가 될 경우 auto_increment 를 하나 증가시키고 업데이트를 실행한다.
즉 primary key 의 값은 하나를 건너띄고 다음 번호를 생성하게 된다.
입력 1 ... primary key 1
입력 2 ... primary key 2
입력 1(업데이트) ... primary key 3 → primary key 1
입력 3 ... primary key 4(앞에서 auto_increment로 인해 삽입하면서 먼저 1을 올렸고, 같은 값이었기 때문에 업데이트를 실행한다. 따라서 현재 입력되는 auto_increment 의 값은 4가 된다.)
IGNORE 는 같은 것이 있다면 무시하고 그냥 다음으로 넘어간다.
on duplicate key update 는 뒤에 나오는 업데이트 구문을 잘 활용할 수 있다. 그리고 lastInsertId 를 찾을 수도 있다.
그런데 가끔 lastInsertId 를 찾지못해 0이 나오는 경우가 발생하는데 왜 그런지 모르겠다.
'프로그래밍' 카테고리의 다른 글
[MongoDB]데이터 삭제 후 디스크 공간 돌려받기 및 속도향상 (0) | 2020.01.10 |
---|---|
인덱스(index) (0) | 2019.12.03 |
일정 시간이 지나면 숨겨진 레이어 보이기 (2) | 2018.12.13 |
PhpStorm says “PHP version Not installed” with PHP 5.6 on Windows (0) | 2018.12.08 |
Bitnami 가상호스트 설정 (1) | 2018.12.05 |