집 >데이터 베이스 >MySQL 튜토리얼 >PL/pgSQL을 사용하여 PostgreSQL에서 여러 테이블 필드를 단일 레코드로 반환하는 방법은 무엇입니까?
PL/pgSQL을 사용하여 PostgreSQL에서 여러 테이블 필드를 레코드로 반환
PL/pgSQL 작업 시 여러 테이블에서 여러 필드 반환 RECORD 데이터 유형을 사용하면 레코드로 사용할 수 있습니다. 이를 통해 다양한 데이터 유형의 필드를 보유할 수 있는 복합 데이터 유형을 생성할 수 있습니다.
예제 코드
추가 복잡성을 해결하는 다음 수정된 예를 고려하십시오. 테이블의 개별 행에서 필드를 검색하는 방법:
CREATE TABLE user (id int, school_id int, name varchar(32)); CREATE TYPE my_type AS ( user1_id int, user1_name varchar(32), user2_id int, user2_name varchar(32) ); CREATE OR REPLACE FUNCTION get_two_users_from_school(schoolid int) RETURNS my_type AS $$ DECLARE result my_type; temp_result user; BEGIN SELECT id, name INTO temp_result FROM user WHERE school_id = schoolid ORDER BY id ASC LIMIT 2; result.user1_id := temp_result[1].id; result.user1_name := temp_result[1].name; IF temp_result[2].id IS NOT NULL THEN result.user2_id := temp_result[2].id; result.user2_name := temp_result[2].name; END IF; RETURN result; END $$ language plpgsql;
이 예에서 get_two_users_from_school 함수는 user1_id, user1_name, user2_id 및 user2_name의 4개 필드가 있는 my_type 레코드를 반환합니다. 사용자 테이블에서 데이터를 검색하고 구성하여 행을 응집력 있는 단일 레코드로 평면화합니다.
동적 레코드 구조
반환된 레코드는 엄밀히 말하면 특정 수의 필드로 제한됩니다. 데이터베이스에서 검색된 데이터를 기반으로 임의 개수의 필드를 반환할 수 있습니다.
사용
이 기능을 사용하려면 다음 쿼리를 실행할 수 있습니다.
SELECT * FROM get_two_users_from_school(123);
지정된 학교 ID의 사용자 세부 정보가 포함된 기록이 반환됩니다.
위 내용은 PL/pgSQL을 사용하여 PostgreSQL에서 여러 테이블 필드를 단일 레코드로 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!