drop function field_exists;
CREATE OR REPLACE FUNCTION field_exists(t_name TEXT, field_name TEXT)
RETURNS Integer AS $$
DECLARE
num_cas Integer;
BEGIN
SELECT count(1) into num_cas FROM information_schema.columns
WHERE table_schema = 'public' -- 或者是其他你的表所在的schema
AND table_name = t_name AND column_name = field_name;
RETURN num_cas;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
DROP FUNCTION get_table;
CREATE OR REPLACE FUNCTION get_table(t_name varchar,t_field varchar,dataid varchar)
RETURNS varchar as $$
DECLARE
subquery varchar;
rss varchar;
begin
if field_exists(t_name,t_field) = 1 then
subquery := 'select id from "' || t_name || '" where id='''|| dataid ||'''';
else
subquery := 'select name from "' || t_name || '" where id='''|| dataid ||'''';
end if;
execute subquery into rss;
RETURN rss;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
postgresql创建函数判读字段存在就执行返回
最新推荐文章于 2024-06-18 15:18:31 发布