问题描述
我想使用postgREST创建一个新表,但是在文档中找不到任何有关此的内容。是否可以创建表?如果是,怎么办?
很抱歉是否已经问过这个问题,但是很遗憾,我总是找到 postgres 的解决方案(没有 t :D)
Thx:)
解决方法
您可以创建为您创建表的存储函数,然后通过 postgrest 调用该函数
类似:
create or replace function create_foo_table() returns void as
$$
begin
execute format('create table foo (id int primary key)')
end
$$ language plpgsql;
然后在 Postgrest 中调用 /rpc/create_foo_table
您需要在此之后重新加载 Postgrest 的模式缓存,以便读取表:https://postgrest.org/en/v7.0.0/admin.html?highlight=reload#schema-reloading
这可能有安全隐患,所以要小心,尤其是在使用动态 SQL 创建表时