You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PL/pgSQL实现拼接姓名函数并调用插入表的问题

修复PL/pgSQL拼接函数及插入逻辑

原代码的核心问题是PL/pgSQL函数的语法错误——函数内的SELECT语句未正确处理返回逻辑,RETURN用法不符合PL/pgSQL规范。以下是修正后的完整代码:

修正后的拼接函数

CREATE OR REPLACE FUNCTION customer_name(first_name varchar, last_name varchar)
RETURNS varchar
LANGUAGE plpgsql
AS
$$
BEGIN
    -- 直接返回拼接后的字符串,无需额外SELECT语句
    RETURN first_name || ' ' || last_name;
END; $$

修正后的插入语句

插入逻辑本身没问题,为避免字段歧义,给表添加别名更清晰:

INSERT INTO Detailed(
    customer_id,
    rental_date,
    return_date,
    customer_name)
SELECT
    customer_id,
    rental_date,
    return_date,
    customer_name(c.first_name, c.last_name)
FROM customer c
INNER JOIN rental r USING(customer_id);

补充说明

如果仅需字符串拼接,SQL原生函数会更轻量化,但既然课程要求必须使用PL/pgSQL函数,上述修正完全满足需求。

内容的提问来源于stack exchange,提问作者tman219

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:52:05