首页 > 解决方案 > 如何在 Postgres 和 NPGSQL 中做

问题描述

添加表

create table mytable( id varchar(6), name varchar(65));

添加功能

create or replace function sc_app.mytable_insert (
    inname varchar(35)
)
returns varchar
as
$$
declare
    vmaxid varchar := null;
begin
    -- Get the MAX
    SELECT 'G' || ltrim(to_char(to_number(substr(coalesce(max(id), 'G00000'), 2), '99999') + 1, '00000'))
        INTO vmaxid
        FROM sc_app.mytable;

    insert into mytable (
        id,
        name
    ) values (
        vmaxid,
        inname
    );

    return vmaxid;

EXCEPTION
WHEN OTHERS THEN
    RAISE NOTICE '%%%', SQLSTATE || ' - ' || SQLERRM;
end;
$$
LANGUAGE plpgsql;

SQL

Select mytable_insert('OUR NAME');

返回值

G00025

npgsql

如何使用 npgsql 和 C# 将 G00025 返回给用户。

使用 Postgres 11 和 npgsql 4.7。

标签: postgresqlnpgsql

解决方案


推荐阅读