데이터 수정 (UPDATE)
기본
UPDATE tablename
SET column1=50000, column2=300
WHERE column3='KOREA';
: COLUMN명 별로 ,(콤마)로 구분해서 입력
- WHERE절을 쓰지 않으면 해당 COLUMN의 모든 행이 변경되므로 WHERE절을 사용하지 않을 때 주의
서브쿼리 사용
UPDATE tablename
SET column1=(SELECT column2 FROM tablename WHERE column3='KO')
WHERE column3='KOREA';
: UPDATE 구문은 모든 절에서 서브쿼리를 작성할 수 있음
LOCK
: 데이터 일관성 유지
- 같은 데이터를 동시에 갱신할 수 없음
- UPDATE 실행 시 COMMIT을 하기 전까지 해당 행 전체에 LOCK이 걸림
- 먼저 UPDATE를 실행한 곳에서 COMMIT을 하지 않으면 다른 곳에서 실행한 UPDATE는 앞의 UPDATE가 COMMIT 될 때까지 WATING 하게 됨
SELECT FOR UPDATE
: 검색하는 행에 LOCK 걸기
SELECT column1, column2
FROM tablename
WHERE column1='KOREA'
FOR UPDATE;
: 검색하는 행 전체에 LOCK이 걸림
- COMMIT 하기 전까지 다른 곳에서 UPDATE를 진행하지 않고 WATING 하게 됨
'CS > 데이터베이스' 카테고리의 다른 글
[Oracle] 데이터 저장과 취소 (COMMIT, ROLLBACK) (0) | 2020.09.17 |
---|---|
[Oracle] 데이터 삭제 (DELETE, TRUNCATE, DROP) (0) | 2020.09.17 |
[Oracle] 데이터 입력 (INSERT) (0) | 2020.09.17 |
[Oracle] 서브쿼리 (SELECT절 서브쿼리) (0) | 2020.09.16 |
[Oracle] 서브쿼리 (FROM절 서브쿼리) (0) | 2020.09.16 |