3

という名前のスキーマがあります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 などの他のスキーマでも問題なく動作します。

私がしたこと:

  • ドット(。)をエスケープしようとしましたが、成功しませんでした
4

1 に答える 1

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 についても同様です。アンダースコアは問題なく機能します。

于 2013-12-26T12:12:10.590 に答える