집 >데이터 베이스 >MySQL 튜토리얼 >PL/pgSQL을 사용하여 서로 다른 PostgreSQL 테이블의 여러 필드를 단일 레코드로 반환하려면 어떻게 해야 합니까?
PL/pgSQL을 사용하여 PostgreSQL에서 여러 필드를 레코드로 반환
PL/pgSQL로 작업할 때 반환이 필요할 수 있습니다. 여러 테이블의 필드를 결합하는 레코드입니다. 이는 Postgres의 RECORD 데이터 유형을 활용하여 달성할 수 있습니다.
다중 테이블 필드 검색에 RECORD 사용
다른 테이블의 필드를 단일 레코드의 필드로 반환하려면, RECORD 유형 내에서 원하는 필드를 다음과 같이 정의하십시오. 다음은 다음과 같습니다.
CREATE OR REPLACE FUNCTION get_object_fields(name text) RETURNS RECORD AS $$ BEGIN -- Retrieve required fields from various tables based on input name -- Return fields as a RECORD RETURN RECORD(f1, f2, f3, f4, f5, f6, f7, f8); END $$ LANGUAGE PL/pgSQL;
여러 결과 행 처리
여러 필드 값이 있는 행을 단일 레코드로 "평탄화"해야 하는 복잡한 시나리오의 경우 더 복잡합니다. 접근이 필요합니다. 다음 코드를 고려하십시오.
CREATE OR REPLACE FUNCTION get_two_users_from_school(schoolid int) RETURNS my_type AS $$ DECLARE result my_type; temp_result user; BEGIN -- Fetch two rows for illustration SELECT id, name INTO temp_result FROM user WHERE school_id = schoolid LIMIT 2; -- Assign values to the RECORD fields using pseudocode (adjust indices for actual row counts) result.user1_id := temp_result[0].id; result.user1_name := temp_result[0].name; result.user2_id := temp_result[1].id; result.user2_name := temp_result[1].name; RETURN result; END $$ LANGUAGE PL/pgSQL;
레코드 유형의 이점
RECORD 유형은 여러 가지 장점을 제공합니다.
위 내용은 PL/pgSQL을 사용하여 서로 다른 PostgreSQL 테이블의 여러 필드를 단일 레코드로 반환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!