相关疑难解决方法(0)

如何在PostgreSQL中复制模式

我有一个架构public和数据库schema_A.我需要创建一个schema_b结构相同的新模式schema_a.我发现下面的函数,问题是它不复制外键约束.

CREATE OR REPLACE FUNCTION clone_schema(source_schema text, dest_schema text)
  RETURNS void AS
$BODY$
DECLARE
  object text;
  buffer text;
  default_ text;
  column_ text;
BEGIN
  EXECUTE 'CREATE SCHEMA ' || dest_schema ;

  -- TODO: Find a way to make this sequence's owner is the correct table.
  FOR object IN
    SELECT sequence_name::text FROM information_schema.SEQUENCES WHERE sequence_schema = source_schema
  LOOP
    EXECUTE 'CREATE SEQUENCE ' || dest_schema || '.' || object;
  END LOOP;

  FOR object IN
    SELECT …
Run Code Online (Sandbox Code Playgroud)

postgresql foreign-key-relationship database-schema postgresql-9.1

16
推荐指数
4
解决办法
3万
查看次数

重复的postgresql架构,包括序列

我的数据库布局需要为每个新客户创建新架构.目前我使用我在网上找到的内部功能并进行了一些修改.

CREATE FUNCTION copy_schema(
    source_schema character varying, 
    target_schema character varying, 
    copy_data boolean)
RETURNS integer AS
$BODY$
DECLARE
    t_ex integer := 0;
    s_ex integer := 0;
    src_table character varying;
    trg_table character varying;
BEGIN
    if (select 1 from pg_namespace where nspname = source_schema) THEN
        -- we have defined target schema
        s_ex := 1;
    END IF;

    IF (s_ex = 0) THEN
        -- no source schema exist
        RETURN 0;
    END IF;

    if (select 1 from pg_namespace where nspname = target_schema) THEN
        -- we have …
Run Code Online (Sandbox Code Playgroud)

sql postgresql multi-tenant database-schema

6
推荐指数
2
解决办法
4756
查看次数