복붙노트

[SQL] 속으로 쿼리 구문을 교체

SQL

속으로 쿼리 구문을 교체

나는 "으로 대체"문을 사용하여 동일한 스키마의 테이블을 업데이트 할 수 있어야합니다. 결국, 나는이 변경되었을 수 있습니다 값으로 대형 테이블을 업데이트 할 수 있어야합니다.

여기에 내가 시작하기 위해 사용하고있는 쿼리는 다음과 같습니다

REPLACE INTO table_name
(visual, inspection_status, inspector_name, gelpak_name, gelpak_location),
VALUES (3, 'Partially Inspected', 'Me', 'GP1234', 'A01');

어떻게 데이터베이스 엔진이 중복 행이며 무엇을하지 무엇인지 않습니다 이해가 안 무엇입니까? 이 데이터는 매우 중요하며, 나는 데이터가 손상되는 위험을 감수 할 수 없다. 그것은 "나열된 모든 컬럼의 값이 같을 경우는 중복 행은"단순하게인가?

난 그냥 1 분이 내가 업데이트 할 수 있도록> 45,000 행을 수행하는 효율적인 방법을 알아 내려고 노력하고있다.

해결법

  1. ==============================

    1.설명서를 말한다로서 :

    설명서를 말한다로서 :

  2. ==============================

    2.많은 단지 같은 PRIMARY KEY 또는 UNIQUE 인덱스를 가지고 기록을 덮어 있다는 INSERT 같은 일을하지만, 조심 않습니다 교체.

    많은 단지 같은 PRIMARY KEY 또는 UNIQUE 인덱스를 가지고 기록을 덮어 있다는 INSERT 같은 일을하지만, 조심 않습니다 교체.

    Shlomi Noach 여기 INTO 교체 사용의 문제에 대해 글을 참고하세요 :

    요약하면, INTO를 잘 구현하실 수 있습니다 교체,하지만 당신은 더 적절한 (및 덜 위험) 대신 INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 찾을 수 있습니다.

  3. ==============================

    3.또는 그런 일 :

    또는 그런 일 :

    insert ignore tbl1 (select * from tbl2);
    
    UPDATE
            `tbl1` AS `dest`,
            (SELECT * FROM tbl2) AS `src`
        SET
           dest.field=src.field,
           dest.field=if (length(src.field)>0,src.field,dest.field) /* or anything like that*/
        WHERE
            `dest`.id = `src`.id; 
    
  4. from https://stackoverflow.com/questions/19820724/replace-into-query-syntax by cc-by-sa and MIT license