zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Python开发之路-多进程、进程队列、事件驱动模型、IO模型前戏
    Python开发之路
    cookies,sessionstorage,localstorage的区别?
    Linux的nmon监控结果分析文件中网络分析NET
    长字符串写法
    go中语句为什么不用加分号;结束
    %v的使用
    设计模式--装饰器模式
    第一类值VS第二类值
    闭包
  • 原文地址:https://www.cnblogs.com/gcdd/p/12292153.html
Copyright © 2011-2022 走看看