programing

중복 키에 있는 MySQL...기존 신분증을 얻으십니까?

easyjava 2023. 10. 1. 23:04
반응형

중복 키에 있는 MySQL...기존 신분증을 얻으십니까?

사용하고 있습니다.ON DUPLICATE KEY UPDATE테이블에 중복 삽입된 내용을 처리할 수 있습니다.

제 경우에는 태그를 저장하는 간단한 테이블입니다.

  • id(int, PK, AI, 부호 없음, null 아님)
  • tag(vararar 25, null이 아님,

이것은 잘 작동하지만, 삽입에 성공한 ID, 또는 중복되는 경우 기존 ID 중 하나를 검색해야 합니다.

삽입아이디 = 받고 있습니다.0어디에ON DUPLICATE KEY UPDATE화재가 발생했습니다. 삽입이 이루어지지 않았기 때문에 예상되는 행동인 것 같습니다.

기존 ID를 얻을 수 있는 방법이 없을까요, 아니면 별도의 읽기 쿼리로 향하는 건가요?

세 번째 열을 추가할 수 있습니다.ModifiedDate사용할 수 있습니다.

insert into t(id, tag)
    select id, tag
    on duplicate key update ModifiedDate = now();

이를 통해 업데이트가 실제로 발생하고, 그 결과로 업데이트가 발생합니다.LAST_INSERT_ID()값을 반환합니다.

언급URL : https://stackoverflow.com/questions/62998306/lookup-insert-if-necessary-in-one-sql-statement

반응형