본문 바로가기

MySQL

[mysql] UPDATE vs REPLACE

[1. 개요]

Table 내 특정 row 들에 대해서 어떤 값을 변경해야 할 때, 사용할 수 있는 방법을 정리한다.

 

UPDATE 는 수정할 row 가 미리 존재해야 한다.

REPLACE 는 Primary key 나 Unique key 를 기준으로 명시한 column 에 해당 하는 값들을 수정한다.

  • pk 나 unique key 가 없으면 insert 로 동작한다.
  • update 가 아니라 해당 row 삭제 후, 다시 insert 하는 형태로 동작한다.

[2. UPDATE]

가장 기본적인 방법, 

조건에 부합하는 row 들에 대해서 해당 column 에 저장된 값을 수정한다.

UPDATE 'Table1'
SET 'Table1'.'Col' = 'your_value'
WHERE 'any condition';

 

 

다른 방법 (원하는 대로 동작하나? 확인 필요)

Table1 의 key 와 Table2 의 key 가 같은 항목들에 대해서, value 를 수정한다.

UPDATE 'Table1'
INNER JOIN `Table1`.key = `Table2`.key
SET `Table1`.value = `Table2`.value

 


[3. REPLACE]

REPLACE INTO table1(column_list)  
SELECT column_list  
FROM table2  
WHERE condition

 

# 해당 key 가 있으면 삭제하고, 다시 집어넣기 때문에 기존 데이터는 유실 된다...

REPLACE INTO Person (id, city)  
VALUES(4,'Amsterdam');

 


[4. ref]

'MySQL' 카테고리의 다른 글

[작성해야 됨] mysql. 유용한 함수  (0) 2024.02.22
MySQL. 테이블 용량 관리  (0) 2023.09.26
MySQL. unique key  (0) 2023.06.22
MySQL, innodb_autoinc_lock_mode  (0) 2023.06.21
MySQL, SQL_SAFE_UPDATES  (0) 2023.06.15