MySql에서 INSERT INTO 문을 사용하여 여러 데이터를 업데이트하는 예

1429 단어
insert는 여러 개의 데이터를 삽입할 때 여러 개의 문장을 지원한다는 것을 알고 있습니다.
 
  
INSERT INTO t_member (id, name, email) VALUES
    (1, 'nick', '[email protected]'),
    (4, 'angel','[email protected]'),
    (7, 'brank','[email protected]');

그러나 업데이트 기록에 대해 업데이트 문법은 한 번에 여러 개의 기록을 업데이트하는 것을 지원하지 않기 때문에 하나씩만 실행할 수 있습니다.
 
  
UPDATE t_member SET name='nick', email='[email protected]' WHERE id=1;
UPDATE t_member SET name='angel', email='[email protected]' WHERE id=4;
UPDATE t_member SET name='brank', email='[email protected]' WHERE id=7;

이 업데이트 리스트가 매우 클 때 (예를 들어 5000개) 이 집행률은 가히 짐작할 수 있다.
Mysql에서 INSERT 문법은 DUPLICATE KEY UPDATE의 조건이 있는데 이 문법은 기록의 존재 여부를 판단해야 하며 존재하지 않으면 존재하면 업데이트되는 기록을 삽입하는 데 적합하다.
구문은 다음과 같습니다.http://dev.mysql.com/doc/refman/5.0/en/insert.html
상기 상황을 바탕으로 업데이트 기록에 대해 insert 문장을 사용하지만 메인 키가 중복될 때 필드를 업데이트하는 것을 제한합니다.다음과 같습니다.
 
  
INSERT INTO t_member (id, name, email) VALUES
    (1, 'nick', '[email protected]'),
    (4, 'angel','[email protected]'),
    (7, 'brank','[email protected]')
ON DUPLICATE KEY UPDATE name=VALUES(name), email=VALUES(email);

주의: ON DUPLICATE KEY UPDATE는 MySQL의 특유한 문법일 뿐 SQL 표준 문법이 아닙니다!

좋은 웹페이지 즐겨찾기