PG數據庫常用操作


全量遷移

  • 備份數據
$ pg_dump -h 172.19.235.145 -U <username> -d <database> > 20180704_dbpe.sql
  • 正式遷移

首先要修改備份文件*.sql的owner,防止權限出現錯誤。

$ psql -h <ip> -U <username> -d <database> -f 20180704_dbpe.sql

【注意點】該遷移操作會覆蓋原來的數據庫,所以最好創建一個新庫。

列出所有表名和數據庫名

select tablename from pg_tables where schemaname ='public';

PostgreSQL 中 有時候想刪除數據庫(drop database swiftliveqaapi;),發現提示“ERROR: database "xxxxxx" is being accessed by other users DETAIL: There are 30 other sessions using the database.”

用psql 登錄進入, 執行語句:
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='數據庫名' AND pid<>pg_backend_pid();
然后就可以刪除數據庫了

修改表的序列為id最大值

SELECT setval('表名_id_seq', (SELECT MAX(id) FROM 表名));

查詢表結構

SELECT 
	COLUMN_NAME AS 列名,
	DATA_TYPE AS 字段類型,
	CHARACTER_MAXIMUM_LENGTH AS 長度,
	IS_NULLABLE AS 是否為空,
	COLUMN_DEFAULT AS 默認值 
FROM
	INFORMATION_SCHEMA.COLUMNS 
WHERE
	table_schema = 'public' 
	AND TABLE_NAME = '表名';

PG 數據庫狀態,啟動,停止

$ pg_ctlcluster 9.5 main status
$ pg_ctlcluster 9.5 main start
$ pg_ctlcluster 9.5 main stop


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM