[오라클] commit/rollback / update

심심이·2024년 2월 18일

oracle

목록 보기
7/40

UPDATE

  • 어떤 테이블에 존재하는 행의 컬럼의 값을 변경(수정)하려고 할 때는 update 명령어를 사용해서 변경 해준다.
    UPDATE [테이블 이름]
    SET [열1] = '변경할 값1', [열2] = '변경할 값2' ...
    WHERE [조건] ** 조건절 미지정시 모든 레코드가 업데이트될 수 있음.

commit, rollback

    
UPDATE 
    employees 
SET 
    first_name = '길동',
    last_name = '홍',
    hire_date = sysdate
WHERE employee_id = 100;
-- 1 행 이(가) 업데이트되었습니다. => 메모리RAM 상에서 변경된 것이다. 즉, 이 세션에서만 바뀐 것임. 실제 디스크엔 반영되지 않는다. 

commit; 
-- 그러므로 디스크에 반영하려면 커밋을 해줘야 한다.
-- 메모리RAM 상에서 변경되어진 것을 실제 디스크DISK 파일에 적용(저장) 시켜주는 것이다. 
-- 커밋하지 않으면, 잠금(ROCK) 이 걸려 다른 세션에서 업데이트가 불가능하다. 
-- (100번인 행을 이미 sql에서 바꿨기 때문에 cmd에서 바꿀 수 없음. commit or rollback 을 해야만 락이 풀림.)

    
UPDATE 
    employees 
SET 
    first_name = '길동',
    last_name = 'a',
    hire_date = sysdate
WHERE employee_id = 100;

commit;
-- 커밋 완료.

rollback;
-- 롤백 완료.

SELECT employee_id
        , first_name
        , last_name
        , hire_date
        , salary
FROM employees
WHERE employee_id = 100;
-- rollback은 commit한 이후로 변경되어진 정보를 취소(이전 상태로 되돌리는 것)하는 것이므로
-- 커밋한 이후에 롤백을 하면 소용이 없다. 원상복구 안된다.


profile
개발하는 심심이

0개의 댓글