PostgreSQL資料庫管理資料匯入匯出

2021-10-07 09:11:25 字數 2149 閱讀 7469

資料庫的匯入匯出是最常用的功能之一,而

postgresql

提供的對應工具為

pg_dump

和pg_restore

。pg_dump

是用於備份

postgresql

資料庫的工具。它可以在資料庫正在使用的時候進行完整一致的備份,並不阻塞其它使用者對資料庫的訪問。

pg_dump匯出預設是copy

命令,這樣的匯出快,匯入時候快。

--inserts                

以insert

命令,而不是

copy

命令的形式轉儲資料

pg_dump -u postgres -d t_station -t nettoll.s24_exit_subshifts_new -f /usr/local/pgsql/data/s24.sql

t_station=# drop table nettoll.s24_exit_subshifts_new;

drop table

[postgres@pg11 ~]$ psql -d t_station -f /usr/local/pgsql/data/s24.sql

setset

setset

setset_config

------------

(1 row)

setset

setset

setset

create table

alter table

comment

comment

copy 3469

alter table

create index

create index

create index

create index

grant

--inserts 將資料輸出為的insert命令 (而不是 copy). 這樣會導致恢復非常緩慢.但卻令歸檔更容易移植到其它 sql 資料庫.

-a 只匯出資料

匯出3至6號的資料,並刪除3號和5號資料,匯入看看是否成功。

select * into nettoll.s24_3_6 from nettoll.s24_exit_subshifts_new where shift_when between '2020-06-03' and '2020-06-06';

pg_dump -u postgres -d t_station -t nettoll.s24_3_6 --inserts -a -f /usr/local/pgsql/data/s240603.sql

select * from nettoll.s24_exit_subshifts_new where shift_when in ('2020-06-03','2020-06-05');

35條delete from nettoll.s24_exit_subshifts_new where shift_when in ('2020-06-03','2020-06-05');

修改匯出檔案-改變表名

vi /usr/local/pgsql/data/s240603.sql

:%s/s24_3_6/s24_exit_subshifts_new/g

143 次替換,共 143 行

成功[postgres@pg11 ~]$  psql -d t_station -f /usr/local/pgsql/data/s240603.sql

insert 0 1

insert 0 1

insert 0 1

insert 0 1

insert 0 1

psql:/usr/local/pgsql/data/s240603.sql:39: error:  duplicate key value violates unique constraint "s24_exit_subshifts_new_pkey"

detail:  key (plaza_id, lane_no, op_id, time_begin, data_source)=(100996, 2, 7660066, 2020-06-03 23:38:29, 1) already exists.

psql:/usr/local/pgsql/data/s240603.sql:40: error:  duplicate key value

PostgreSQL學習手冊 資料庫管理

posted on 2012 05 21 10 12 stephen liu 閱讀 0 編輯收藏 一 概述 資料庫可以被看成是sql物件 資料庫物件 的命名集合,通常而言,每個資料庫物件 表 函式等 只屬於乙個資料庫。不過對於部分系統表而言,如pg database,是屬於整個集群的。更準確地說,資...

postgresql模板資料庫

template0和template1為postgresql資料庫的模板資料庫,新建的資料庫預設使用template1作為模板。template0和template1的區別在於template0無法修改,因此你可以修改template1資料庫以定製新建立的資料庫。template資料庫無法被刪除 d...

postgresql資料庫安裝

安裝並初始化 1 解壓資料庫並放到指定目錄 在opt目錄下 tar xvzf postgresql 10.1 1 linux x64 binaries.tar.gz 解壓出來之後目錄為pgsql 2 mv pgsql usr local pgsql 3 建立pgsql使用者並設定密碼 useradd...