데이터베이스에 새 행을 추가하거나 교체하고 행의 자동 생성 ID를 반환하려면 sqlite (Java JDBC를 사용하여 확실하지 않음)를 사용하고 싶습니다. 이걸 효율적으로/깔끔하게하는 방법을 모르겠다.sqlite : lookup-or-replace
테이블 정의> = 3 열이 있습니다
- 자동 생성 된 정수
ID
- 고유 키 문자열을
내가 일반적으로 두 가지를 생각할 수
key
를 호출하자) 접근 방식 :
-
일치가 없다면
SELECT ID FROM myTable WHERE key = ?
- 는 새 행을 삽입하고 자동 생성 된 ID
또는
INSERT OR REPLACE INTO myTable (key, metadata) VALUES (?, ?)
SELECT ID FROM myTable WHERE key = ?
을 얻기 위해 단계 # 1을 반복 어떻게해야합니까? 두 접근법 중 어느 것이 원자 트랜잭션인지 확실하지 않습니다. 그것은 또한 새로운 하나를 사용하여 ID를 대체하는 것을 제외하고 난 그냥, 삽입을 시도하거나 접근을 장착하고 "작품"편집
(물론, 첫 번째 2에 대한 확실하지 아닙니다) 그것은 내가 원하는 것을 원하지 않습니다. 기존 ID를 유지하고 싶습니다.
OMG - Java는 완벽하게 유효한 태그입니다. Java 프레임 워크 고유의 솔루션 (예 : 최대 절전 모드)이있을 수 있습니다. – RichardTheKiwi
@cyberkiwi : 질문은 원격으로 java-entire SQL과 관련이 없습니다. 질문을 읽기 쉽도록 편집 내용을 롤백하는 사실을 변경하지 않습니다. 질문을 편집 할 수있는 권한이 있습니다. 책임감있게 사용하고 성장할 수 있습니다. –
@OMG - 질문에 따르면, Java JDBC를 사용하여 데이터베이스에 새 행을 다시 작성하고 행의 자동 생성 ID를 반환합니다. 이를위한 Java 프레임 워크 솔루션이 있습니다. ''자바와 관련이 없다 '는 부분은 어디에서 얻습니까?틈새와 "또는"을 구별 할 수 없다면 읽을 수있는 것이 아니라 – RichardTheKiwi