gpt4 book ai didi

postgresql - 使用函数获取 View View 引用的表

转载 作者:行者123 更新时间:2023-11-29 13:28:23 26 4
gpt4 key购买 nike

我想获取 View 引用的表并显示它们。

我有两个表:test1test2

我创建了一个引用这些表的 View

CREATE VIEW First_View 
AS
SELECT * FROM test1
UNION
SELECT * FROM test2;

我创建了一个表,其中包含 View 详细信息,例如 view idview name,如下所示:

CREATE TABLE View_Details
(
view_id int,
view_name varchar
);

并向其中插入一条记录。

INSERT INTO view_details values(1,'First_View');

现在我正在创建一个带有一个参数 v_id 的函数,即 view_id 并希望获取所有由 view_namt 引用的表.

我正在这样做,但我在“消息”中什么也没收到:

CREATE OR REPLACE FUNCTION For_testing(v_id INT)
RETURNS VOID AS
$$
Declare
var varchar;
v_name varchar;
BEGIN
SELECT view_name INTO v_name from view_details where view_id = v_id;

FOR var IN SELECT Table_NAME from INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE View_Name = v_name LOOP
RAISE INFO '%',VAR;

END LOOP;
END;
$$
language plpgsql;

调用函数:

SELECT for_testing(1);

最佳答案

尝试 SELECT lower(view_name) INTO v_name from view_details where view_id = v_id;因为它应该用双引号引起来才能成为 First_View...我的意思是如果您在创建 View 时不使用“First_View”,字典会将 First_View 更改为 lower(First_View)...

关于postgresql - 使用函数获取 View View 引用的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com