Sagan Goodenough Asked: 2022-08-20 02:14:45 +0800 CST2022-08-20 02:14:45 +0800 CST 2022-08-20 02:14:45 +0800 CST 为组中的每个用户创建架构 772 我正在尝试为组中的每个用户找到一种在数据库中创建模式的方法...... 目标是自动化学校结构的创建过程。 比如说,每个班级都是一个数据库,班级中的每个学生都有一个可以使用的模式。但是我怎样才能自动为每个学生创建一个模式呢? 感谢您给我的任何指导或帮助。 postgresql schema 1 个回答 Voted Best Answer a_horse_with_no_name 2022-08-20T03:02:22+08:002022-08-20T03:02:22+08:00 假设您已经创建了所有用户,这可以通过一些 SQL 脚本轻松完成。 最简单的方法是运行一条 SQL 语句,生成所需的 CREATE SCHEMA 语句并运行其结果(例如,使用 psql 的\gexec 命令: select format('create schema %I authorization %I;', usename , usename) from pg_user; 或者,您可以使用一个 PL/pgSQL 块来完成所有操作: do $$ declare l_rec record; l_sql text; begin for l_rec in select usename from pg_user loop l_sql := format('create schema %I authorization %I', l_rec.usename, l_rec.usename); execute l_sql; end loop; end; $$ 在 SELECT 中使用 WHERE 子句将用户限制为与当前数据库相关的用户。 您需要连接到每个数据库并运行语句
假设您已经创建了所有用户,这可以通过一些 SQL 脚本轻松完成。
最简单的方法是运行一条 SQL 语句,生成所需的 CREATE SCHEMA 语句并运行其结果(例如,使用 psql 的
\gexec
命令:或者,您可以使用一个 PL/pgSQL 块来完成所有操作:
在 SELECT 中使用 WHERE 子句将用户限制为与当前数据库相关的用户。
您需要连接到每个数据库并运行语句