sql >> データベース >  >> RDS >> PostgreSQL

PostgresデータベースをCSVファイルにエクスポートする

    このpl/pgsql関数を作成して、テーブルごとに1つの.csvファイルを作成しました。 (ビューを除く、@ tarikkiのおかげで):

    CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
    declare
       tables RECORD;
       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')
       AND t.table_type NOT IN ('VIEW')
       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;
    

    そして私はそれをこのように使用します:

    SELECT db_to_csv('/home/user/dir');
    -- this will create one csv file per table, in /home/user/dir/
    


    1. クライアントをインストールせずにOracleデータベースに接続するAzureWebApp(.NET)

    2. FOREIGN KEY制約によって参照されているため、オブジェクトを削除できませんでした-SQL Server/TSQLチュートリアルパート74

    3. Oracle SQLクエリ-先週(月曜日から土曜日)のデータを取得します

    4. PostgreSQLでDISTINCTを使用して列を選択する