본문 바로가기

Program/PostgreSQL

[PostgreSQL] LOOP문을 이용한 배열 데이터 저장

테이블에 연속적인 데이터를 입력할 필요가 있을 때 function 파라미터를 배열로 받아서 저장하는 방법을 사용하면 편하다.

예를 들어 상품을 주문할 경우 그 주문건에 상품 품목이 한개라면 상관이 없지만 상품 품목이 여러개라면 한 주문번호에 여러 상품의 데이터가 저장될 필요가 있다. 이를 위해서는 주문에 관한 테이블도 최소 2개 이상이 필요하게 된다. 하나는 주문에 관한 데이터가 입력되는 테이블, 또 하나는 주문에 대해 관련 상품 정보들을 담고 있는 테이블이다. 그리고 이렇게 되면 두번째 테이블은 주문ID와 상품ID를 PK로 사용하게 될 것이다.

PostgreSQL에서 배열 데이터 타입은 character varying[], integer[], text[] 등등이 있고, anyarray 등의 배열관련 데이터 타입도 있는데 자세한 내용은 직접 document를 참고 하는 것이 좋을 것 같다.


예제 function

 


실행