나는 경우, 물론, (도시하지 않음) 별도의 문Mysql : 삽입 시도에서 ID를 가져 오는 가장 효율적인 방법은 무엇입니까?
INSERT IGNORE INTO users (some_data) VALUES ('test');
SELECT LAST_INSERT_ID(); <--- I do stuff with this.
에 결과 user_id
(기본 키 자동 증가 컬럼)를 사용하지만 some_data
(고유 키 열)를 삽입하고 있어요 some_data
이 이미 존재합니다 (매우 자주 발생합니다). LAST_INSERT_ID()
은 0을 반환합니다.이 경우 고유 키 some_data
을 기반으로 user_id
을 얻는 가장 좋은 방법은 무엇입니까? 물론 별도의 WHERE 쿼리를 수행 할 수 있지만 이것이 가장 효율적인지는 확실하지 않습니다.
INSERT INTO users (id, some_col) VALUES (n,some_val)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), some_col=some_val;
무시하지만 일을 할 수 없음 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html에서
어를 다시 얻기 위해 시저를 사용합니다. (2) 키가 중복되면 id를 0으로 설정하지 않겠습니까? – Agamemnus
이 게시물을 확인하십시오 : http : //stackoverflow.com/questions/14383503/on-duplicate-key-update-same-as-insert 역시 당신의 문제인 것처럼 보입니다. – byrnedo
byrnedo, 링크 주셔서 감사하지만 중요한 부분은 기존 항목의 삽입/업데이트 후에 ID를 얻습니다. 솔루션이 제공되지 않았습니다. – Agamemnus