我环顾四周,成立以下有关如何使用 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