我环顾四周, find了如何使用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;
这看起来正是我所需要的,因为我对数据库相当陌生,但知道我的解决scheme.csv文件。 问题是,我实际上不知道如何正确设置这个function。 在定义中,我需要指定一种语言(在答案中声明为plpgsql)和返回types。 我不确定返回types应该是什么。 此外,这可能听起来很愚蠢,我想确认我应该用我的.sql转储文件的pathreplaceTEXT。 感谢您的帮助!
这个函数创build一个数据转储,而不是导入它,这是你想要做的。 您所指的文本是它将生成的CSV文件的path。
PgAdmin 1.4似乎有一个恢复设施: http ://www.pgadmin.org/docs/1.4/restore.html
如果您正在尝试将数据导入到单个表格中,则可以右键单击PgAdmin中的表格并select导入。
如果您正在尝试为整个数据库导入数据,并且打开了除PgAdmin之外的其他选项,则可以使用psql:
psql -h host -U username dbname < data.dmp