데이터 분석/SQL
[쉽게 쓴 SQL] UPDATE 문
참치바나나
2020. 11. 23. 11:46
테이블에 존재하는 데이터를 수정합니다.
동시성에 유의해야 합니다(?). 수정 시 대상 행을 LOCK을 잡는다. 영화관 표 예매 시스템처럼.
table_name이라는 이름의 테이블의 column_1에는 value1을, column_2에는 value2를 넣는다
UPDATE
table_name
SET
column_1 = value1,
column_2 = value2
WHERE 조건
;
이전 글에서 쓰던 테이블 사용하여,
'last_update' 컬럼을 추가하고 디폴트DEFAULT 값을 현재 시간(current_date)으로 바꾼다
ALTER TABLE link ADD COLUMN last_update date;
ALTER TABLE link ALTER COLUMN last_update
SET DEFAULT current_date;
SELECT * FROM link;
기존에 있는 행에는 아무 일도 일어나지 않는다.
last_update 컬럼 중에 NULL인 행의 값을 DEFAULT 값으로 수정한다
UPDATE link
SET last_update = DEFAULT
WHERE
last_update IS NULL;
SELECT * FROM link;
디폴트를 현재시간으로 두어서 전부 현재 시간이 업데이트된 걸 확인할 수 있다.
rel 컬럼의 데이터를 전부 'no data'로 수정한다
UPDATE link
SET rel = 'no data'
;
여기서 WHERE 절이 없이 실행하면 데이터 손실에 대한 경고 메시지가 뜬다. 디비버 기능이다.
무시하고 실행하면
반영된 것을 볼 수 있다.