by playlyun [SQL Query] Query UPSERT [2018.02.02 12:16:57]
Insert가 PK 로인해 실패한경우 업데이트 작업을 ㅎ려고합니다.
UPSERT를 사용하기에는 작업내용이 경우의수가 좀있어서 트리거나 룰을 써야할것같은데
INSERT 실패시 트리거나 룰을 발생시킬수있나요?
MERGE INTO 문 사용하세요.
MY-SQL이시면 패쓰..
1. insert > exception > update 2. update > if(0 건) > insert 3. select count > if(cnt > 0) (then update else insert) 4. merge (INSERT ~ ON CONFLICT (postgresql 9.5)
1번은 오류가 발생하므로 안좋은 방법이구요. 1번 보다는 2,3번 방법 쓰는 게 좋을 것 같네요. 4번이 가장 좋습니다.