colorful

zc qq:1337220912

 

postgresql 小盒子

------------------------------------------------------------------------------------------
查看postgresql 连接情况: select * from pg_stat_activity;

------------------------------------------------------------------------------------------
timestamp to unix
select user_id, date_part('epoch',create_time)::integer from tb_account;

------------------------------------------------------------------------------------------
unix to timestamp
select user_id, to_timestamp(online_time) as online from login_log order by user_id;
select to_timestamp(online_time)::timestamp without time zone as online_t from login_log;

------------------------------------------------------------------------------------------
列出所有数据库
\list

------------------------------------------------------------------------------------------
查看当前连接,当前的操作
select * from pg_stat_activity;

------------------------------------------------------------------------------------------
psql 显示查询时间
\timing

------------------------------------------------------------------------------------------
查询所有的索引,所有的表
select * from pg_stat_user_indexes;
select * from pg_stat_user_tables;

-------------------------------------------------------------------------------------------
client 编码
1 使用psql 里的 \encoding 命令。 \encoding 允许你动态修改客户端编码。 比如,\encoding utf8
2 使用 libpq 函数。 \encoding 在做此用途的时候实际上是调用 PQsetClientEncoding()。
   int PQsetClientEncoding(PGconn *conn, const char *encoding);这里 conn 与后端的联接,而 encoding 是你想用的编码。如果编码设置成功它返回 0,否则返回 -1。本次联接的当前编码可以用下面函数显示:
   int PQclientEncoding(const PGconn *conn);请注意它只返回编码 ID,而不是象 EUC_JP 这样的编码符号字串。 要把编码 ID 转换为编码符号,你可以用:
   char *pg_encoding_to_char(int encoding_id);
3 使用 SET client_encoding TO 。 可以用 SQL 命令设置客户端编码:
   SET CLIENT_ENCODING TO 'value';你还可以把 SQL 语法里的 SET NAMES用于这个目的:
   SET NAMES 'value';查询当前客户端编码:
   SHOW client_encoding;返回缺省编码:
   RESET client_encoding;
4 使用 PGCLIENTENCODING。 如果在客户端的环境里定义了 PGCLIENTENCODING 环境变量, 那么在与服务器进行联接时将自动选择客户端编码。 (这个编码随后可以用上面谈到的任何其它方法覆盖。)
5 使用client_encoding配置变量。 如果在 postgresql.conf 里设置了 client_encoding 变量, 那么在与服务器建立了联接之后,这个客户端编码将自动选定。(这个设置随后可以被上面提到 的其他方法覆盖。)
--------------------------------------------------------------------------------------------
无需手动输入密码
1 可以设置pg_hba.conf
2 可以在用户目录下新建 .pgpass文件, 内容为ip:port:dbname:username:password  例如 localhost:5432:*:postgres:321654
3 可以通过设置PGPASSWORD 环境变量

--------------------------------------------------------------------------------------------
删除所有表
1 创建函数
CREATE FUNCTION drop_all_table() RETURNS void AS $$  
DECLARE  
    tmp VARCHAR(512);  
DECLARE names CURSOR FOR   
    select tablename from pg_tables where schemaname='public';  
BEGIN  
  FOR stmt IN names LOOP  
    tmp := 'DROP TABLE '|| quote_ident(stmt.tablename) || ' CASCADE;';  
    RAISE NOTICE 'notice: %', tmp;  
    EXECUTE 'DROP TABLE '|| quote_ident(stmt.tablename) || ' CASCADE;';  
  END LOOP;  
  RAISE NOTICE 'finished .....';  
END; 
$$ LANGUAGE plpgsql;

2 执行 select drop_all_table();

----------------------------------------------------------------------------------------------
加注释, 给表结构加注释
COMMENT ON COLUMN table.col IS 'this is comment';
postgresql 只能通加comment加注释, 不能在create语句里加

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

posted on 2013-07-23 17:45 多彩人生 阅读(357) 评论(0)  编辑 收藏 引用 所属分类: postgresql


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜