使用 pgAdmin 导入数据转储

使用 pgAdmin 导入数据转储

我环顾四周,成立以下有关如何使用 pgadmin 导入数据转储的代码:

CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
  tables RECORD;
gmdeclare
  statement TEXT;
begin
  FOR tables IN 
    SELECT (table_schema || '.' || table_name) AS schema_table
    FROM information_schema.tables t INNER JOIN information_schema.schemata s 
    ON s.schema_name = t.table_schema 
    WHERE t.table_schema NOT IN ('pg_catalog', 'information_schema', 'configuration')
    ORDER BY schema_table
  LOOP
    statement := 'COPY ' || tables.schema_table || ' TO ''' || path || '/' || tables.schema_table || '.csv' ||''' DELIMITER '';'' CSV HEADER';
    EXECUTE statement;
  END LOOP;
  return;  
end;
$$ LANGUAGE plpgsql;

这看起来正是我需要的,因为我对数据库还很陌生,但知道如何使用 .csv 文件。问题是,我实际上不知道如何正确设置此功能。在定义中,我需要指定一种语言(在答案中声明为 plpgsql)和一种返回类型。我不确定返回类型应该是什么。此外,这可能听起来很傻,我想确认我应该用我的 .sql 转储文件的路径替换 TEXT。感谢大家的帮助!

答案1

此函数会创建数据转储,而不是导入数据,这与您要执行的操作相反。您所指的 TEXT 是它将生成的 CSV 文件的路径。

PgAdmin 1.4 似乎具有恢复功能:http://www.pgadmin.org/docs/1.4/restore.html

如果您尝试将数据导入单个表,您可以右键单击 PgAdmin 中的表并选择导入。

如果您尝试导入整个数据库的数据,并且除了 PgAdmin 之外还愿意使用其他选项,则可以使用 psql:

psql -h host -U username dbname < data.dmp

相关内容