PostgreSQL: INSERT, UPDATE, DELETE 실행 결과 리턴 받기 (WHEN / RETURNING)
PostgreSQL: INSERT, UPDATE, DELETE 실행 결과 리턴 받기 (WHEN / RETURNING)
PGSQL에서는 INSERT , UPDATE , DELETE 쿼리 실행 후 처리 ROWS만 알려주는데, 조금더 상세한 정보를 알수 있는 방법이 있습니다. INSERT , UPDATE , DELETE 쿼리 뒤에 RETURNING * 난 입력해주면 실행한 쿼리의 결과를 출력해주게됩니다. UPDATE member SET id = 't' RETURNING *; RETURNING * 에서 * 은 SELECT * FROM member; 와 같습니다. * 대신 컬럼 명을 입력해도 됩니다.
이 기능을 언제 쓰면 좋을지 활용 예제를 참고해보세요.
시작전에 PGSQL에서 WITH 8.4이상, RETURNING 8.2 이상 버전에서 사용 가능합니다. 활용 예제를 테스트 하기 위한 테이블 생성 -- 회원
CREATE TABLE member (
id VARCHAR(10) PRIMARY KEY,
password VARCHAR(10)
);
-- 회원 상세
CREATE TABLE member_detail (
id VARCHAR(10) PRIMARY KEY,
name VARCHAR(10)
);
-- 회원 로그
CREATE TABLE member_log (
id VARCHAR(10),
description TEXT,
created TIMESTAMP
);
-- 회원 백업
CREATE TABLE member_backup AS SELECT * FROM member;
-- 회원 테스트 데이터
INSERT INTO member VALUES
('backup-id0', '12345678'),
('backup-id1', '12345678'),
('backup-id2', '12345678');
INSERT 활용 예제 1 설명: 회원 기본 정보를 member 테이블에 정상 입력되면 id 값을 받아 member_detail 테이블에 상세 정보를 넣는다. WITH …