create table test1 (
id int not null auto_increment primary key,
a varchar(16), b varchar(16)
);
INSERT INTO test1 (a,b) VALUES ('a1','b3') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), b='3';
위의 줄은 테이블이 비어 있기 때문에 항목을 삽입해야합니다. Mysql last_insert_id가 작동하지 않는 중복 키에 삽입
INSERT INTO test1 (a,b) VALUES ('a1','b3') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), b='3';
은 이미 존재
"3"
a1, b3
이후로
b
를 교체해야, 다시 라인을 실행합니다. 그러나 mysql은 나를 위해 또 다른 라인을 추가한다. 나는 잠시 수색했으며 해결책을 찾을 수 없습니다.
최신 업데이트 : 모든 도움에 감사드립니다. 나는 그 열 중 하나가 유일해야한다고 생각했다.
변경 테이블 테스트 1 고유 (a)
이 문제를 해결합니다.
id는 기본 키입니다. 고유 한 색인으로 간주됩니까? 감사합니다 – user661192
기본 키는 고유 인덱스의 특별한 경우입니다. 그렇습니다. 그러나 INSERT가 기본 키의 중복 값을 생성하지 않으므로 update 절은 사용되지 않습니다. – Konerak