나는 INSERT IGNORE
과 INSERT ... ON DUPLICATE KEY UPDATE
이 존재한다는 것을 알고 있습니다. 그러나 중복 키가있을 경우 임시 테이블에 INSERT
을 작성하여 위반 한 고유 키를 기록하여 사용자에게 출력 할 수 있습니다.MySql - 이중 키 삽입시
ON DUPLICATE INSERT
할 수있는 방법이 있습니까? 도움이된다면 대량 삽입을 시도하고 있습니다.
나는 INSERT IGNORE
과 INSERT ... ON DUPLICATE KEY UPDATE
이 존재한다는 것을 알고 있습니다. 그러나 중복 키가있을 경우 임시 테이블에 INSERT
을 작성하여 위반 한 고유 키를 기록하여 사용자에게 출력 할 수 있습니다.MySql - 이중 키 삽입시
ON DUPLICATE INSERT
할 수있는 방법이 있습니까? 도움이된다면 대량 삽입을 시도하고 있습니다.
ON DUPLICATE KEY UPDATE
을 사용하면 다른 테이블에 삽입 할 수 없으며 사용할 수있는 다른 기능이 없습니다.
두 개의 사용자 정의/다른 방법이 작업을 수행 할 수 있습니다
을 stored procedure
을 사용하여이 질문에 대한 허용 대답에 명시된 바와 같이 : MySQL ON DUPLICATE KEY insert into an audit or log table
만들기 테이블마다 INSERT
기록 trigger
다른 테이블에 저장하고 모든 로그에 대해 "로그"로 가득 찬 테이블을 쿼리합니다. 이와 유사한
뭔가 작동합니다 :
CREATE TABLE insert_logs (
id int not null
);
delimiter |
CREATE TRIGGER insert_logs_trigger BEFORE INSERT ON your_table
FOR EACH ROW BEGIN
INSERT INTO insert_logs SET id = NEW.id;
END;
|
테이블에서 중복의 목록을 얻으려면, 당신은 우리를 수 :
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;
이것은 매우 도움이됩니다. 감사합니다. ! :) – matt
가능한 중복의 [MySQL을 ON DUPLICATE KEY 감사 또는 로그 테이블에 삽입] (http://stackoverflow.com/questions/3884344/mysql-on-duplicate-key-insert-into-an-audit-or-log-table) –