PostgREST-如何创建表?

问题描述

我想使用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 创建表时