PostgreSQL Q&A 게시판에서 7196번 게시물의 질문과 같습니다. http://database.sarang.net/?inc=read&aid=7196&criteria=pgsql&subcrit=&id=&limit=20&keyword=returning&page=1 그런데 postgresql.or.kr 사이트가 없어졌나 봅니다. ㅡ.ㅡ;; insert into schema01.table01 (title) values (para_title) returning *; 위와 같이 쿼리를 하면 잘 실행이 됩니다만.. pl/pgsql함수에서는 사용법이 어떤지 궁금합니다. 그냥 select a.* from schema01.table01 as a order by a.id desc limit 1; 이런 쿼리로 가져오면 왠지 정확하지 않다는 생각이 들어서요..
정확히 무엇을 할려고 하는지는 모르겠으나,
returning 기능을 이용하면 될거 같습니다.
insert into table values (.....) returning seq;
update, delete 문도 마찬가지고요
이건 plpgsql 이 아니라 그냥 sql 구문에서도 사용할 수 있습니다.
저도 전에 같은 고민을 한 적이 있었는데요.
pl/pgsql 내에서 returning을 쓰려면;;
insert into 변수 into 테이블 (..) values(...) 이런식으로 밖에 안되니 당연히 안되었던 걸로 기억합니다;
그때 시도해 본 방법은 아니지만요
for 변수 in insert into 테이블 (..) values(...) returning *
처럼 한 번 해보세요. 쿼리문이 스트링 형이라서 escape에 문제가 있을 수는 있지만요;;