0

我有以下查询,它在 pgAdmin4 的“数据输出”字段中生成 ALTER TABLE 语句列表。我可以将它们复制并粘贴回查询窗格并在那里执行它们。

select 'ALTER TABLE ' || table_name || ' OWNER TO myuser;' from information_schema.tables where table_schema = 'public';

如何执行生成的语句而无需复制和粘贴它们?

4

1 回答 1

1

您可以使用该功能。

CREATE OR REPLACE FUNCTION change_permission_table() 
RETURNS VOID AS $$
DECLARE
    rec text;
BEGIN
    FOR rec IN SELECT 'ALTER TABLE ' || table_name || ' OWNER TO maz;' FROM information_schema.tables WHERE table_schema = 'public'
    LOOP 
      EXECUTE rec;
    END LOOP;
END;
$$ LANGUAGE plpgsql;

-- Run the function to change the permission
SELECT change_permission_table()
于 2017-08-15T07:23:01.227 回答