sql 관련 글
Relyt One 팀이 쓴 sql 관련 글, 가이드, 엔지니어링 노트.
3 개의 글

Postgres ID가 번호를 건너뛰는 이유와 가져오기 후 "duplicate key" 오류를 고치는 방법
PostgreSQL의 serial 및 identity 열에서 빈 번호가 생기는 원인(롤백, ON CONFLICT, 장애, CACHE), 데이터를 가져온 뒤 삽입이 duplicate key value violates unique constraint로 실패하는 이유, 모든 시퀀스를 한 번에 재설정하는 쿼리, integer ID가 바닥날 때 일어나는 일, 그리고 빈 번호 없는 송장 번호를 다룹니다. 모든 문장은 Postgres 17.11에서 재현했습니다.

Postgres를 작업 큐로 쓰기: FOR UPDATE SKIP LOCKED를 제대로 쓰는 법
PostgreSQL 17에서 SELECT ... FOR UPDATE SKIP LOCKED로 백그라운드 작업 큐를 만드는 방법을 설명합니다. 단순한 SELECT 후 UPDATE가 같은 작업을 두 번 가져가는 이유, FOR UPDATE만으로는 워커가 기다리게 되는 이유, 리스와 재시도, LISTEN/NOTIFY, vacuum, 그리고 폴링하는 워커가 서버리스 컴퓨트에 미치는 영향을 다룹니다. 모든 문장은 Postgres 17.11에서 재현했습니다.

Postgres의 INSERT ... ON CONFLICT와 MERGE: 어떤 업서트를 쓸지, 그리고 각각이 내는 오류
PostgreSQL 17에서 언제 INSERT ... ON CONFLICT로 업서트하고 언제 MERGE를 써야 하는지, 동시성 상황에서 MERGE가 중복 키 오류로 실패하는 이유, 그리고 'cannot affect row a second time', 비어 있는 RETURNING, 'no unique or exclusion constraint matching the ON CONFLICT specification'을 해결하는 방법을 설명합니다. 모든 문장은 Postgres 17.11에서 재현했습니다.
영어로 된 글을 더 볼 수 있습니다. 영어 글