H2 데이터베이스의 MERGE
명령을 사용하고 있는데 그 중 documentation의 일부를 이해하지 못합니다. 문제가되는 부분은 -H2 데이터베이스 병합
테이블에 자동 증가 된 키 또는 식별 열이 포함되어 있고 행이 업데이트 된 경우 생성 된 키는 0으로 설정됩니다. 그렇지 않으면 새 키
로 설정되어 이해하려고 다음과 같은 SQL 문을 실행이 표는 위의 문 다음과 같습니다
CREATE TABLE h2_test (id INTEGER PRIMARY KEY AUTO_INCREMENT, int INTEGER)
INSERT INTO h2_test (int) VALUES (42)
INSERT INTO h2_test (int) VALUES (43)
INSERT INTO h2_test (int) VALUES (44)
MERGE INTO h2_test (int) KEY(int) VALUES (45)
MERGE INTO h2_test (id, int) VALUES (5, 46)
MERGE INTO h2_test (id, int) VALUES (2, 47)
INSERT INTO h2_test (int) VALUES (48)
그래서
+---------+
| ID INT |
+---------+
| 1 42 |
| 2 47 |
| 3 44 |
| 4 45 |
| 5 46 |
| 6 48 |
+---------+
없음 중요한 키가 MERGE
에 포함되는지 여부에 관계없이 명령문이 레코드가 추가되면 증가합니다. &은 이미 존재하는 값을 제거합니다. 명령문이 갱신되는 레코드 결과를 얻는 경우에 대비하십시오. 누군가가 문서의 인용 부분은 예상대로 작동