gp建表的实例 
  
 
  

            gp 创建外部表的实例:(外部表不能建立分布键) 
  
 
  

                 CREATE EXTERNAL TABLE user_app_tag (  
   
             user_id bigint,  
   
             tag4 int,  
   
             tgi text,  
   
             duration bigint,  
   
             open_time int,  
   
             tag_deadline int,  
   
             load_time text,  
   
             tag int)  
   
             LOCATION ('gpfdist://mdw:8081/000000.csv')  
   
             FORMAT 'CSV' ( DELIMITER ',')  
   
             LOG ERRORS INTO err_customer SEGMENT REJECT LIMIT 5; 
   
  

          内部表带分布键的实例:(数据量大的表一定要有分布键,且要设置合理) 
  
 
  

                 CREATE TABLE user_app_tag_dis (  
  
              user_id bigint,  
  
             tag4 int,  
  
             tgi text,  
  
             duration bigint,  
  
             open_time int,  
  
             tag_deadline int,  
  
             load_time text,  
  
             tag int)  
  
             DISTRIBUTED BY (user_id); 
  

      
  
 
  

        加载数据流程:可以先创建外部表然后再通过 insert into 内部表 (field1,field2,...,field) select * from 外部表。 
  
 
 

     
 
 
 

     
 
 
 

     
 
 
 

    psql -h 192.168.200.140 -p 5432  -d eamp -U yg_fz 
  
 
 

     
 
 
 

     
 
 
 

   1 命令行登录数据库 
 
 
 

   有两种方式,一是直接在系统shell下执行psql命令;而是先进入psql环境,然后再连接数据库。下面分别给出实例: 
 
 
 

   (1)直接登录 
 
 
 

   执行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username为数据库用户名,dbname为要连接的数据库名,执行后提示输入密码如下: 
 
 
 

   Password for user username: (在此输入密码) 
 
 
 

   输入密码后即可进入psql环境了。 
 
 
 

   (2)切换数据库 
 
 
 

   有时候需要在psql环境下切换数据库,此时执行如下psql命令: 
 
 
 

   \c dbname username serverIP port 
 
 
 

   其中除了数据库名外,其他的参数都是可选的,如果使用默认值可以使用-作为占位符 
 
 
 

   执行这个命令后,也是提示输入密码。 
 
 
 

     
 
 
 

   2 查看帮助 
 
 
 

   psql提供了很好的在线帮助文档,总入口命令是help,输入这个命令就可以看到 
 
 
 

   vsb9=# help 
 
 
 

   You are using psql, the command-line interface to PostgreSQL. 
 
 
 

   Type:  \copyright for distribution terms 
 
 
 

          \h for help with SQL commands 
 
 
 

          \? for help with psql commands 
 
 
 

          \g or terminate with semicolon to execute query 
 
 
 

          \q to quit 
 
 
 

     
 
 
 

   可以看到,标准SQL命令的帮助和psql特有命令的帮助是分开的。输入\?查看psql命令,会发现所有的psql命令都是以\开头,这就很容易和标准的SQL命令进行区分开来。 
 
 
 

     
 
 
 

   3 常用命令 
 
 
 

   为了便于记忆,这里把对应的mysql命令也列出来了。 
 
 
 

     
 
 
 

   (1)列出所有的数据库 
 
 
 

   mysql: show databases 
 
 
 

   psql: \l或\list 
 
 
 

   (2)切换数据库 
 
 
 

   mysql: use dbname 
 
 
 

   psql: \c dbname 
 
 
 

     
 
 
 

   (3)列出当前数据库下的数据表 
 
 
 

   mysql: show tables 
 
 
 

   psql: \d 
 
 
 

     
 
 
 

   (4)列出指定表的所有字段 
 
 
 

   mysql: show columns from table name 
 
 
 

   psql: \d tablename 
 
 
 

     
 
 
 

   (5)查看指定表的基本情况 
 
 
 

   mysql: describe tablename 
 
 
 

   psql: \d+ tablename 
 
 
 

     
 
 
 

   (6)退出登录 
 
 
 

   mysql: quit 或者\q 
 
 
 

   psql:\q 
 
 
 

     
 
 
 

     
 
 
 

     
 
 
 

   1.createdb 数据库名称 
 
 
 

     产生数据库 
 
 
 

   2.dropdb  数据库名称 
 
 
 

     删除数据库 
 
 
 

   3.CREATE USER 用户名称 
 
 
 

     创建用户 
 
 
 

   4.drop User 用户名称 
 
 
 

     删除用户 
 
 
 

   5.SELECT usename FROM pg_user; 
 
 
 

     查看系统用户信息 
 
 
 

     \du 
 
 
 

   7.SELECT version(); 
 
 
 

     查看版本信息 
 
 
 

   8.psql 数据库名 
 
 
 

     打开psql交互工具 
 
 
 

   9.mydb=> \i basics.sql 
 
 
 

   \i 命令从指定的文件中读取命令。 
 
 
 

   10.COPY weather FROM '/home/user/weather.txt'; 
 
 
 

      批量将文本文件中内容导入到wether表 
 
 
 

   11.SHOW search_path; 
 
 
 

      显示搜索路径 
 
 
 

   12.创建用户 
 
 
 

      CREATE USER 用户名 WITH PASSWORD '密码' 
 
 
 

   13.创建模式 
 
 
 

      CREATE SCHEMA myschema; 
 
 
 

   14.删除模式 
 
 
 

      DROP SCHEMA myschema; 
 
 
 

   15.查看搜索模式 
 
 
 

      SHOW search_path; 
 
 
 

   16.设置搜索模式 
 
 
 

      SET search_path TO myschema,public; 
 
 
 

   17.创建表空间 
 
 
 

     create tablespace 表空间名称 location '文件路径'; 
 
 
 

   18.显示默认表空间 
 
 
 

     show default_tablespace; 
 
 
 

   19.设置默认表空间 
 
 
 

     set default_tablespace=表空间名称; 
 
 
 

   20.指定用户登录 
 
 
 

       psql MTPS  -u 
 
 
 

   21.显示当前系统时间、 
 
 
 

      now() 
 
 
 

   22.配置plpgsql语言 
 
 
 

   CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler 
 
 
 

   23.删除规则 
 
 
 

   DROP RULE name ON relation [ CASCADE | RESTRICT ] 
 
 
 

     
 
 
 

   输入 
 
 
 

   name 
 
 
 

   要删除的现存的规则. 
 
 
 

   relation 
 
 
 

   该规则应用的关系名字(可以有大纲修饰). 
 
 
 

   CASCADE 
 
 
 

   自动删除依赖于此规则的对象。 
 
 
 

   RESTRICT 
 
 
 

   如果有任何依赖对象,则拒绝删除此规则。这个是缺省。 
 
 
 

   24.日期格式函数 
 
 
 

     select 'P'||to_char(current_date,'YYYYMMDD')||'01' 
 
 
 

   25.产生组 
 
 
 

     Create Group 组名称 
 
 
 

   26.修改用户归属组 
 
 
 

     Alter Group 组名称 add user 用户名称 
 
 
 

   26.为组赋值权限 
 
 
 

     
 
 
 

     grant 操作 On 表名称  to group 组名称: 
 
 
 

   27.创建角色 
 
 
 

     Create Role 角色名称 
 
 
 

   28.删除角色 
 
 
 

     Drop Role 角色名称 
 
 
 

   29.获得当前postgresql版本 
 
 
 

     SELECT version(); 
 
 
 

   30.在linux中执行计划任务 
 
 
 

      通过crontab执行 
 
 
 

      su root -c "psql -p 5433 -U developer MTPS -c'select test()'" 
 
 
 

      developer用户的密码存储于环境变量PGPASSWORD中。 
 
 
 

   31.查询表是否存在 
 
 
 

     select * from pg_statio_user_tables where relname='你的表名'; 
 
 
 

   32.为用户复制SCHEMA权限 
 
 
 

     grant all on SCHEMA 作用域名称 to 用户名称 
 
 
 

   33.整个数据库导出 
 
 
 

     pg_dumpall -D -p 端口号 -h 服务器IP -U postgres(用户名) > /home/xiaop/all.bak 
 
 
 

   34.数据库备份恢复 
 
 
 

     psql -h 192.168.0.48 -p 5433  -U postgres 
 
 
 

   35.当前日期函数 
 
 
 

     current_date 
 
 
 

   36.返回第十条开始的5条记录 
 
 
 

   select   *   from   tabname   limit   5   offset   10; 
 
 
 

   37.为用户赋模式权限 
 
 
 

   Grant   on schema developer  to UDataHouse 
 
 
 

     
 
 
 

   38.将字符转换为日期时间 
 
 
 

     select  to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss') 
 
 
 

   39.数据库备份 
 
 
 

     pg_dumpall   -h 192.168.0.4 -p 5433 -U postgres   >/DataBack/Postgresql2010012201.dmp 
 
 
 

     如8.1以后多次输入密码 
 
 
 

   40.\dn 
 
 
 

      查看schema 
 
 
 

   41.删除schema 
 
 
 

     drop schema _clustertest cascade; 
 
 
 

   42.导出表 
 
 
 

     ./pg_dump -p 端口号 -U 用户 -t 表名称 -f 备份文件位置 数据库  ; 
 
 
 

   43.字符串操作函数 
 
 
 

   select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2)); 
 
 
 

   44.删除表主键 
 
 
 

   alter table 表名 drop CONSTRAINT 主键名称; 
 
 
 

   45.创建表空间 
 
 
 

   create tablespace 空间名称 location '路径' 
 
 
 

   46.查看表结构 
 
 
 

   select * from information_schema.columns 
 
 
 

     
 
 
 

     
 
 
 

       ./postgres -D /usr/local/src/data 
 
 
 

   or 
 
 
 

       ./pg_ctl -D /usr/local/src/data -l logfile start 
 
 
 

     
 
 
 

   47.查看数据库大小 
 
 
 

   SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize; 
 
 
 

   48.查看数据库表大小 
 
 
 

   SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize, 
 
 
 

   pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize 
 
 
 

   49.设置执行超过指定秒数的sql语句输出到日志 
 
 
 

   log_min_duration_statement = 3 
 
 
 

   50.超过一定秒数sql自动执行执行计划 
 
 
 

   shared_preload_libraries = 'auto_explain' 
 
 
 

   custom_variable_classes = 'auto_explain' 
 
 
 

   auto_explain.log_min_duration = 4s 
 
 
 

   51.数据库备份 
 
 
 

    select pg_start_backup('backup baseline'); 
 
 
 

    select pg_stop_backup(); 
 
 
 

    recovery.conf 
 
 
 

    restore_command='cp /opt/buxlog/%f %p' 
 
 
 

   52.重建索引 
 
 
 

    REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ] 
 
 
 

    INDEX 
 
 
 

    重新建立声明了的索引。 
 
 
 

    TABLE 
 
 
 

    重新建立声明的表的所有索引。如果表有个从属的"TOAST"表,那么这个表也会重新索引。 
 
 
 

    DATABASE 
 
 
 

    重建当前数据库里的所有索引。 除非在独立运行模式下,会忽略在共享系统表上的索引(见下文)。 
 
 
 

    SYSTEM 
 
 
 

    在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 另外,除了是在单主机模式下,共享的系统表也会被忽略(见下文)。 
 
 
 

    name 
 
 
 

    需要重建索引的索引,表或者数据库的名称。 表和索引名可以有模式修饰。 目前,REINDEX DATABASE 和 REINDEX SYSTEM 只能重建当前数据库的索引, 因此其参数必须匹配当前数据库的名字。 
 
 
 

    FORCE 
 
 
 

    这是一个废弃的选项,如果声明,会被忽略。 
 
 
 

     
 
 
 

   54.数据字典查看表结构 
 
 
 

   SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train'; 
 
 
 

     
 
 
 

     
 
 
 

   52.查看被锁定表 
 
 
 

   SELECT pg_class.relname AS table, pg_database.datname AS database,  pid, mode, granted 
 
 
 

   FROM pg_locks, pg_class, pg_database 
 
 
 

   WHERE pg_locks.relation = pg_class.oid 
 
 
 

   AND pg_locks.database = pg_database.oid; 
 
 
 

   53.查看客户端连接情况 
 
 
 

   SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity; 
 
 
 

   54.常看数据库.conf配置 
 
 
 

   show all 
 
 
 

   55.修改数据库postgresql.conf参数 
 
 
 

   修改postgresql.conf内容 
 
 
 

   pg_ctl reload 
 
 
 

   56.回滚日志强制恢复 
 
 
 

   pg_resetxlog -f 数据库文件路径 
 
 
 

     
 
 
 

    idvalue  | remark 
 
 
 

   ----------+-------- 
 
 
 

    33953557 | inser 
 
 
 

   57.当前日期属于一年中第几周 
 
 
 

   select EXTRACT(week from TIMESTAMP '2010-10-22'); 
 
 
 

   58.显示最近执行命令 
 
 
 

   \s 
 
 
 

   I. SQL 命令 
 
 
 

   ABORT — 退出当前事务 
 
 
 

   ALTER AGGREGATE — 修改一个聚集函数的定义 
 
 
 

   ALTER CONVERSION — 修改一个编码转换的定义 
 
 
 

   ALTER DATABASE — 修改一个数据库 
 
 
 

   ALTER DOMAIN — 改变一个域的定义 
 
 
 

   ALTER FUNCTION — 修改一个函数的定义 
 
 
 

   ALTER GROUP — 修改一个用户组 
 
 
 

   ALTER INDEX — 改变一个索引的定义 
 
 
 

   ALTER LANGUAGE — 修改一个过程语言的定义 
 
 
 

   ALTER OPERATOR — 改变一个操作符的定义 
 
 
 

   ALTER OPERATOR CLASS — 修改一个操作符表的定义 
 
 
 

   ALTER ROLE — 修改一个数据库角色 
 
 
 

   ALTER SCHEMA — 修改一个模式的定义 
 
 
 

   ALTER SEQUENCE — 更改一个序列生成器的定义 
 
 
 

   ALTER TABLE — 修改表的定义 
 
 
 

   ALTER TABLESPACE — 改变一个表空间的定义 
 
 
 

   ALTER TRIGGER — 改变一个触发器的定义 
 
 
 

   ALTER TYPE — 改变一个类型的定义 
 
 
 

   ALTER USER — 改变数据库用户帐号 
 
 
 

   ANALYZE — 收集与数据库有关的统计 
 
 
 

   BEGIN — 开始一个事务块 
 
 
 

   CHECKPOINT — 强制一个事务日志检查点 
 
 
 

   CLOSE — 关闭一个游标 
 
 
 

   CLUSTER — 根据一个索引对某个表集簇 
 
 
 

   COMMENT — 定义或者改变一个对象的评注 
 
 
 

   COMMIT — 提交当前事务 
 
 
 

   COMMIT PREPARED — 提交一个早先为两阶段提交准备好的事务 
 
 
 

   COPY — 在表和文件之间拷贝数据 
 
 
 

   CREATE AGGREGATE — 定义一个新的聚集函数 
 
 
 

   CREATE CAST — 定义一个用户定义的转换 
 
 
 

   CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器 
 
 
 

   CREATE CONVERSION — 定义一个新的的编码转换 
 
 
 

   CREATE DATABASE — 创建新数据库 
 
 
 

   CREATE DOMAIN — 定义一个新域 
 
 
 

   CREATE FUNCTION — 定义一个新函数 
 
 
 

   CREATE GROUP — 定义一个新的用户组 
 
 
 

   CREATE INDEX — 定义一个新索引 
 
 
 

   CREATE LANGUAGE — 定义一种新的过程语言 
 
 
 

   CREATE OPERATOR — 定义一个新的操作符 
 
 
 

   CREATE OPERATOR CLASS — 定义一个新的操作符表 
 
 
 

   CREATE ROLE — define a new database role 
 
 
 

   CREATE RULE — 定义一个新的重写规则 
 
 
 

   CREATE SCHEMA — 定义一个新的模式 
 
 
 

   CREATE SEQUENCE — 创建一个新的序列发生器 
 
 
 

   CREATE TABLE — 定义一个新表 
 
 
 

   CREATE TABLE AS — 从一条查询的结果中定义一个新表 
 
 
 

   CREATE TABLESPACE — 定义一个新的表空间 
 
 
 

   CREATE TRIGGER — 定义一个新的触发器 
 
 
 

   CREATE TYPE — 定义一个新的数据类型 
 
 
 

   CREATE USER — 创建一个新的数据库用户帐户 
 
 
 

   CREATE VIEW — 定义一个视图 
 
 
 

   DEALLOCATE — 删除一个准备好的查询 
 
 
 

   DECLARE — 定义一个游标 
 
 
 

   DELETE — 删除一个表中的行 
 
 
 

   DROP AGGREGATE — 删除一个用户定义的聚集函数 
 
 
 

   DROP CAST — 删除一个用户定义的类型转换 
 
 
 

   DROP CONVERSION — 删除一个用户定义的编码转换 
 
 
 

   DROP DATABASE — 删除一个数据库 
 
 
 

   DROP DOMAIN — 删除一个用户定义的域 
 
 
 

   DROP FUNCTION — 删除一个函数 
 
 
 

   DROP GROUP — 删除一个用户组 
 
 
 

   DROP INDEX — 删除一个索引 
 
 
 

   DROP LANGUAGE — 删除一个过程语言 
 
 
 

   DROP OPERATOR — 删除一个操作符 
 
 
 

   DROP OPERATOR CLASS — 删除一个操作符表 
 
 
 

   DROP ROLE — 删除一个数据库角色 
 
 
 

   DROP RULE — 删除一个重写规则 
 
 
 

   DROP SCHEMA — 删除一个模式 
 
 
 

   DROP SEQUENCE — 删除一个序列 
 
 
 

   DROP TABLE — 删除一个表 
 
 
 

   DROP TABLESPACE — 删除一个表空间 
 
 
 

   DROP TRIGGER — 删除一个触发器定义 
 
 
 

   DROP TYPE — 删除一个用户定义数据类型 
 
 
 

   DROP USER — 删除一个数据库用户帐号 
 
 
 

   DROP VIEW — 删除一个视图 
 
 
 

   END — 提交当前的事务 
 
 
 

   EXECUTE — 执行一个准备好的查询 
 
 
 

   EXPLAIN — 显示语句执行规划 
 
 
 

   FETCH — 用游标从查询中抓取行 
 
 
 

   GRANT — 定义访问权限 
 
 
 

   INSERT — 在表中创建新行 
 
 
 

   LISTEN — 监听一个通知 
 
 
 

   LOAD — 装载或重载一个共享库文件 
 
 
 

   LOCK — 明确地锁定一个表 
 
 
 

   MOVE — 重定位一个游标 
 
 
 

   NOTIFY — 生成一个通知 
 
 
 

   PREPARE — 创建一个准备好的查询 
 
 
 

   PREPARE TRANSACTION — 为当前事务做两阶段提交的准备 
 
 
 

   REINDEX — 重建索引 
 
 
 

   RELEASE SAVEPOINT — 删除一个前面定义的保存点 
 
 
 

   RESET — 把一个运行时参数值恢复为缺省值 
 
 
 

   REVOKE — 删除访问权限 
 
 
 

   ROLLBACK — 退出当前事务 
 
 
 

   ROLLBACK PREPARED — 取消一个早先为两阶段提交准备好的事务 
 
 
 

   ROLLBACK TO — 回滚到一个保存点 
 
 
 

   SAVEPOINT — 在当前事务里定义一个新的保存点 
 
 
 

   SELECT — 从表或视图中取出若干行 
 
 
 

   SELECT INTO — 从一个查询的结果中定义一个新表 
 
 
 

   SET — 改变运行时参数 
 
 
 

   SET CONSTRAINTS — 设置当前事务的约束检查模式 
 
 
 

   SET ROLE — set the current user identifier of the current session 
 
 
 

   SET SESSION AUTHORIZATION — 为当前会话设置会话用户标识符和当前用户标识符 
 
 
 

   SET TRANSACTION — 设置当前事务的特性 
 
 
 

   SHOW — 显示运行时参数的数值 
 
 
 

   START TRANSACTION — 开始一个事务块 
 
 
 

   TRUNCATE — 清空一个或者一堆表 
 
 
 

   UNLISTEN — 停止监听通知信息 
 
 
 

   UPDATE — 更新一个表中的行 
 
 
 

   VACUUM — 垃圾收集以及可选地分析一个数据库 
 
 
 

   II. 客户端应用 
 
 
 

   clusterdb — 对一个PostgreSQL数据库进行建簇 
 
 
 

   createdb — 创建一个新的 PostgreSQL 数据库 
 
 
 

   createlang — 定义一种新的 PostgreSQL 过程语言 
 
 
 

   createuser — 定义一个新的 PostgreSQL 用户帐户 
 
 
 

   dropdb — 删除一个现有 PostgreSQL 数据库 
 
 
 

   droplang — 删除一种 PostgreSQL 过程语言 
 
 
 

   dropuser — 删除一个 PostgreSQL 用户帐户 
 
 
 

   ecpg — 嵌入的 SQL C 预处理器 
 
 
 

   pg_config — 检索已安装版本的 PostgreSQL 的信息 
 
 
 

   pg_dump — 将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中 
 
 
 

   pg_dumpall — 抽出一个 PostgreSQL 数据库集群到脚本文件中 
 
 
 

   pg_restore — 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。 
 
 
 

   psql — PostgreSQL 交互终端 
 
 
 

   vacuumdb — 收集垃圾并且分析一个PostgreSQL 数据库 
 
 
 

   III. PostgreSQL 服务器应用 
 
 
 

   initdb — 创建一个新的 PostgreSQL数据库集群 
 
 
 

   ipcclean — 从失效的PostgreSQL服务器中删除共享内存和信号灯 
 
 
 

   pg_controldata — 显示一个 PostgreSQL 集群的控制信息 
 
 
 

   pg_ctl — 启动,停止和重起 PostgreSQL 
 
 
 

   pg_resetxlog — 重置一个 PostgreSQL 数据库集群的预写日志以及其它控制内容 
 
 
 

   postgres — 以单用户模式运行一个 PostgreSQL服务器 
 
 
 

   postmaster — PostgreSQL多用户数据库服务器 
 
 
 

   59.导出数据库角色 
 
 
 

    /data/pgsql/bin/pg_dumpall -p 5432 -U postgres -r >/tmp/postgres_8.3_role.bak 
 
 
 

   60.修改sequence所有者 
 
 
 

    grant all on sequence名称 to 所有者; 
 
 
 

   61.修改sequence初始值 
 
 
 

   Alter SEQUENCE  sequencename START  value; 
 
 
 

   62.查看sequence当前值 
 
 
 

   SELECT currval('sequencename'); 
 
 
 

   63.查看sequence下一值 
 
 
 

   SELECT nextval('sequencename'); 
 
 
 

   64.设置sequence当前值 
 
 
 

    alter SEQUENCE  sequencename  restart with  startvalue; 
 
 
 

   SELECT nextval('sequencename'); 
 
 
 

     
 
 
 

   65.查询表结构 
 
 
 

     
 
 
 

   SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a 
 
 
 

   .atttypmod AS lengthvar,a.attnotnull AS notnull 
 
 
 

   FROM pg_class c,pg_attribute a,pg_type t 
 
 
 

   WHERE c.relname=表名称and  a.attnum > 0  and  a.attrelid = c.oid and a 
 
 
 

   .atttypid = t.oid 
 
 
 

     
 
 
 

   66.将查询结果直接输出到文件 
 
 
 

   在psql中 
 
 
 

   \o 文件路径 
 
 
 

   select datname,rolname from pg_database  a left outer join pg_roles b on a.datdba=b.oid ; 
 
 
 

   \o 
 
 
 

     
 
 
 

   67.查询数据库所有则 
 
 
 

   select datname,rolname from pg_database  a left outer join pg_roles b on a.datdba=b.oid ; 
 
 
 

     
 
 
 

   68.结束正在执行的事务 
 
 
 

   SELECT * from  pg_stat_activity; 
 
 
 

   select pg_cancel_backend('procpid'); 
 
 
 

     
 
 
 

   60.结束session 
 
 
 

   SELECT * from  pg_stat_activity; 
 
 
 

   select  pg_terminate_backend('procpid'); 
 
 
 

   61.postgresql取消转义字符功能 
 
 
 

    将postgresql.conf文件中的standard_conforming_strings设置为on 
 
 
 

     
 
 
 

   62.查询正在执行SQL 
 
 
 

   SELECT 
 
 
 

       procpid, 
 
 
 

       start, 
 
 
 

       now() - start AS lap, 
 
 
 

       current_query 
 
 
 

   FROM 
 
 
 

       (SELECT 
 
 
 

           backendid, 
 
 
 

           pg_stat_get_backend_pid(S.backendid) AS procpid, 
 
 
 

           pg_stat_get_backend_activity_start(S.backendid) AS start, 
 
 
 

          pg_stat_get_backend_activity(S.backendid) AS current_query 
 
 
 

       FROM 
 
 
 

           (SELECT pg_stat_get_backend_idset() AS backendid) AS S 
 
 
 

       ) AS S 
 
 
 

   WHERE 
 
 
 

      current_query <> '' 
 
 
 

   ORDER BY 
 
 
 

      lap DESC;