PostgreSQL 오류 42601 수정 방법: ''레코드'를 반환하는 함수에는 열 정의 목록이 필요합니다'?
Jan 05, 2025 pm 03:10 PM<h2>PostgreSQL: 오류: 42601: "레코드"를 반환하는 함수에는 열 정의 목록이 필요합니다</h2>
"열" 오류 "레코드"를 반환하는 함수에는 정의 목록이 필요합니다."는 레코드 데이터 유형을 반환하도록 정의된 함수에 열 이름과 데이터 유형이 누락되었음을 나타냅니다. 반환 문에서. 이 오류를 해결하려면 RETURNING 절에 열 정의를 지정하거나 RETURNS SETOF <record_type>을 사용하세요.
다음 코드에서 설명한 것처럼 RETURNING 절에 열 이름과 데이터 유형을 정의할 수 있습니다.
CREATE OR REPLACE FUNCTION get_user_by_username(_username text , _online bool DEFAULT false) RETURNS TABLE ( user_id int , user_name varchar , last_activity timestamptz ) LANGUAGE plpgsql AS $func$ BEGIN IF _online THEN RETURN QUERY UPDATE users u SET last_activity = current_timestamp -- ts with time zone WHERE u.user_name = _username RETURNING u.user_id , u.user_name , u.last_activity; ELSE RETURN QUERY SELECT u.user_id , u.user_name , u.last_activity FROM users u WHERE u.user_name = _username; END IF; END $func$;
또는 RETURNS SETOF <record_type> 레코드 세트를 반환합니다. 여기서 <record_type> 반환된 데이터의 구조를 나타내는 복합 유형입니다. 예:
CREATE OR REPLACE FUNCTION get_user_by_username3(_username text , _online bool DEFAULT false) RETURNS TABLE ( users_row users , custom_addition text ) LANGUAGE plpgsql AS $func$ BEGIN IF _online THEN RETURN QUERY UPDATE users u SET last_activity = current_timestamp -- ts with time zone WHERE u.user_name = _username RETURNING u -- whole row , u.user_name || u.user_id; ELSE RETURN QUERY SELECT u, u.user_name || u.user_id FROM users u WHERE u.user_name = _username; END IF; END $func$;
위 내용은 PostgreSQL 오류 42601 수정 방법: ''레코드'를 반환하는 함수에는 열 정의 목록이 필요합니다'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
