반응형
Oracle Sequence Transaction - 트랜잭션을 사용하면 시퀀스에서 중복 값으로 문제가 생길까?
2022. 1. 6. 10:21

다른 사람이 짠 코드를 읽다가 문득 트랜잭션 안에 들어가있는 시퀀스는 롤백이 되어서 중복된 값을 가져가진 않을까 하는 생각이 들었다 트랜잭션 데이터베이스에서 데이터를 처리하는 하나의 단위로, 여러 개의 쿼리문을 실행 후 중간에 하나라도 잘못된 호출이 있으면 그 여러 개의 쿼리 명령이 취소된다. (트랜잭션 안의 데이터베이스 쿼리들이 하나씩 실행되다가 중간에 뻑나면 롤백된다는 소리...) 시퀀스 오라클에서는 자동 증가 컬럼을 사용할 수 없기 때문에 MAX(컬럼) + 1 을 사용하거나 SEQUENCE 를 사용하는데, 중복을 방지하기 위해서 SEQUENCE 를 사용한다. 오라클 시퀀스는 NEXTVAL를 사용하면 값이 1씩 증가하게 된다. (MAX(컬럼) + 1 은 중복값으로 인한 문제가 발생할 수 있기 때문에 ..

OUTER JOIN (외부 조인) - oracle, mysql
2022. 1. 5. 12:14

OUTER JOIN 이란? JOIN 하는 여러 테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없을 때, 데이터가 있는 쪽의 모든 데이터를 가져오면서 데이터가 없는 쪽의 데이터를 JOIN 해서 가져오고 싶을 때 사용한다. 예시 TABLE_1 id name 1 짱구 2 철수 3 맹구 TABLE_2 id product 1 사탕 3 과자 5 과자 TABLE_1 에 OUTER JOIN 하면 id name id product 1 짱구 1 사탕 2 철수 NULL NULL 3 맹구 3 과자 OUTER JOIN (LEFT, RIGHT, FULL) LEFT OUTER JOIN TABLE_1 에 JOIN 되고, TABLE_1에 없는 값은 NULL 로 보여줌 SELECT * FROM TABLE_1 LEFT OUTER..

반응형