模式名称中的点(。)使pg_dump不可用

时间:2013-12-26 11:56:33

标签: postgresql schema pg-dump

我有一个名为2sample.sc的模式。当我想要pg_dump其某些表时,会出现以下错误:

pg_dump: No matching tables were found

我的pg_dump命令:

pg_dump -U postgres -t 2sample.sc."error_log" --inserts games > dump.sql

我的pg_dump在2sample等其他模式上运行正常。

我做了什么:

  • 我试图逃避点(。)但没有成功,但

1 个答案:

答案 0 :(得分:4)

使用"schema.name.with.dots.in.it"."table.name.with.dots.in.it"指定schema.table

        -- test schema with a dot in its name
DROP SCHEMA "tmp.tmp" CASCADE;
CREATE SCHEMA "tmp.tmp" ;
SET search_path="tmp.tmp";

CREATE TABLE nononono
        ( dont SERIAL NOT NULL
        );

insert into nononono
SELECT generate_series(1,10)
        ;

$pg_dump -t \"tmp.tmp\".\"nononono\" --schema-only -U postgres the_database

输出(剪切):

SET search_path = "tmp.tmp", pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;

--
-- Name: nononono; Type: TABLE; Schema: tmp.tmp; Owner: postgres; Tablespace:
--

CREATE TABLE nononono (
    dont integer NOT NULL
);

顺便说一句:为什么你想在模式(或表格)名称中添加一个点吗?这是在寻找麻烦。对于MixedCaseNames也是如此。下划线工作正常。