본문 바로가기
MySql

MySQL 단일 쿼리에 여러 행 삽입에 대한 MySQL ON DUPLICATE KEY UPDATE

by 베이스 공부 2020. 11. 28.
반응형

단일 쿼리에 여러 행을 삽입하려는 SQL 쿼리가 있습니다. 그래서 다음과 같이 사용했습니다.

$sql = "INSERT INTO beautiful (name, age)
  VALUES
  ('Helen', 24),
  ('Katrina', 21),
  ('Samia', 22),
  ('Hui Ling', 25),
  ('Yumie', 29)";

mysql_query( $sql, $conn );

문제는이 쿼리를 실행할 때 UNIQUE 키 ( PRIMARY KEY 가 아님)가 아닌지 확인하고 싶습니다. 위의 'name'을 확인해야하며 이러한 'name'이 이미 존재하는 경우 해당하는 전체 행을 업데이트해야합니다. 그렇지 않으면 삽입해야합니다.

예를 들어, 아래 예에서 'Katrina'가 이미 데이터베이스에있는 경우 필드 수에 관계없이 전체 행을 업데이트해야합니다. 다시 'Samia'가 없으면 행을 삽입해야합니다.

나는 사용을 생각했다 :

INSERT INTO beautiful (name, age)
      VALUES
      ('Helen', 24),
      ('Katrina', 21),
      ('Samia', 22),
      ('Hui Ling', 25),
      ('Yumie', 29) ON DUPLICATE KEY UPDATE

여기에 함정이 있습니다. 진행 방법에 대해 막히고 혼란 스러웠습니다. 한 번에 삽입 / 업데이트 할 여러 행이 있습니다. 방향을 알려주세요. 감사.

 

해결 방법

 


INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age),
     ...

 

참조 페이지 https://stackoverflow.com/questions/2714587

 

 

반응형

댓글