zoukankan      html  css  js  c++  java
  • PostgreSQL常用脚本

    1、Linux登录数据库
    2、查看版本号
    3、切换数据库和用户
    4、创建数据库
    5、杀掉进程
    99、字典表

    //////////////////////////////////////////////////////////
    1、Linux登录数据库,输入第一条命令后,显示 -bash-4.2$,继续输入psql就进入数据库了。
    su - postgres
    psql
    --退出,输入第一条命令后,显示 -bash-4.2$,继续输入第二条提示输入密码,就回到root了。
    \q
    su - root

    2、查看版本号
    show server_version;
    show server_version_num;
    select version();

    3、切换数据库和用户
    --需要在psql命令界面下
    \c daname;
    \c username;
    --显示当前
    select current_user, session_user;
    select current_database();
    --命令行显示当前
    \c

    4、创建数据库
    --创建用户
    create user common with password 'common';
    --创建表空间。文件夹右键选择属性|安全,修改Users用户的权限为完全控制。
    create tablespace common owner common location 'D:\Software\PostgreSQL\data\common';
    drop tablespace common;
    --创建数据库,lc_collate与lc_ctype对应postgresql.conf中的lc_messages对应的字符集
    create database common with
    owner = common
    encoding = 'UTF8'
    lc_collate = 'Chinese (Simplified)_China.936'
    lc_ctype = 'Chinese (Simplified)_China.936'
    tablespace = common
    connection limit = -1;
    --创建模式,先切换数据库到dbname下,psql命令下用:\c dbname;
    create schema common authorization common;
    alter schema name rename to new_name;
    alter schema name owner to new_owner;
    --search_path模式列表(可忽略):查询时先查用户对应的模式,找不到数据则按路径中的模式列表依次查询
    show search_path;
    select d.datname,s.setconfig from pg_db_role_setting s join pg_database d on d.oid=s.setdatabase;
    alter database dbname set search_path to "$user", public;
    alter database dbname reset search_path;

    5、杀掉进程
    --杀掉空闲进程
    select pg_terminate_backend(pid) from pg_stat_activity where state='idle';
    --关闭当前用户下的后台进程,向后台发送SIGINT信号,用于关闭事务,此时session还在,并且事务回滚
    pg_cancel_backend()
    --关闭所有的后台进程,需要superuser权限,向后台发送SIGTERM信号,用于关闭事务,此时session也会被关闭,并且事务回滚
    pg_terminate_backend()

    6、查询被锁定表、对象等
    --ExclusiveLock查询的是排它锁
    select * from pg_locks a
    join pg_class b on a.relation = b.oid
    join pg_stat_activity c on a.pid = c.pid
    where a.mode like '%ExclusiveLock%';


    99、字典表
    pg_database        --数据库信息
    pg_tablespace        --表空间信息
    pg_tables            --表信息
    pg_class            --对象信息
    information_schema.tables    --数据库、模式、表对应关系
        
        
    --查询表及其注释语句
    select a.tablename,obj_description(relfilenode, 'pg_class') as 注释
    from pg_tables a join pg_class b on a.tablename=b.relname where a.schemaname='schemaname';
    --查询表详细信息,表对应的reltablespace为0时表示使用的是数据库默认表空间
    select c.relname 表名,obj_description(c.relfilenode, 'pg_class') as 注释,c.relpages 页数,
    pg_size_pretty(pg_relation_size(c.oid)) 大小,t.table_catalog 数据库,t.table_schema 模式,
    case c.reltablespace when 0 then ss.spcname else s.spcname end as 表空间
    from pg_class c
    join information_schema.tables t on c.relname=t.table_name
    join pg_database d on t.table_catalog=d.datname
    join pg_tablespace ss on d.dattablespace=ss.oid
    left join pg_tablespace s on c.reltablespace=s.oid
    where c.relkind='r' and c.relname not like 'pg_%' and c.relname not like 'sql_%'
    --查询列信息
    select t.tableowner 用户,t.schemaname 模式,a.attnum 序号,c.relname 表名,a.attname 列名,
    col_description(a.attrelid, a.attnum) 别名,format_type(a.atttypid, a.atttypmod) 类型
    from pg_attribute a join pg_class c on a.attrelid=c.oid
    join pg_tables t on c.relname=t.tablename
    where a.attnum>0 and c.relkind='r' and c.relname not like 'pg_%' and c.relname not like 'sql_%'
    --查询数据库默认表空间
    select d.datname,d.dattablespace,s.spcname from pg_database d join pg_tablespace s on d.dattablespace=s.oid;

  • 相关阅读:
    jquery表格伸展
    jquery单选框 复选框表格高亮 选中
    jquery表单验证
    jquery下拉框实现将左边的选项添加到右边区域
    jquery checkbox选中状态
    关于.net页面提交后css样式不生效的发现
    asp.net页面后退,重复弹出上一页对话框处理办法
    这几天做完简易酒店管理系统,对Sql Server执行计划的浅显了解
    温故而知新--sql存储过程复习
    网站前端性能优化之javascript和css
  • 原文地址:https://www.cnblogs.com/publiter/p/15726814.html
Copyright © 2011-2022 走看看