Postgresql VACUUM COPY等
1.VACUUM
VACUUM回收dead tuples占用的存储空间。 在一般的PostgreSQL操作中,被update操作删除或废弃的元组不会从物理表中删除; 它们一直存在,直到执行VACUUM才会被删除。 因此,必须定期进行VACUUM,特别是在经常更新的表格上。可以极大减少表的内存占用。
清理所有表:
VACUUM
清理指定表 :
VACUUM FULL tablename
[ FULL ]为可选项,可以回收更多的空间,但需要更长的时间同时会锁定表。 此方法还需要额外的磁盘空间,因为它会写入表的新副本,并且在操作完成之前不会释放旧副本。 通常这只能在需要从表格内回收大量空间时才使用。
2.查询数据库所有权限
select * from INFORMATION_SCHEMA.role_table_grants
如果想查询用户xttblog有哪些权限,可以查询系统表information_schema.role_table_grants:
select * from INFORMATION_SCHEMA.role_table_grants where grantee='xttblog';
3.PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。
关于postGIS没有template_postgis模版的问题解决
http://blog.csdn.net/u013323965/article/details/52191908
4. \COPY
psql下用\copy,pgadmin中用copy
功能1.拷贝文件到数据库
COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | PROGRAM 'command' | STDIN } [ [ WITH ] ( option [, ...] ) ]
功能2.数据库文件导出 COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } TO { 'filename' | PROGRAM 'command' | STDOUT } [ [ WITH ] ( option [, ...] ) ]
option可以是:
FORMAT format_name
OIDS [ boolean ]
FREEZE [ boolean ]
DELIMITER 'delimiter_character'
NULL 'null_string'
HEADER [ boolean ]
QUOTE 'quote_character'
ESCAPE 'escape_character'
FORCE_QUOTE { ( column_name [, ...] ) | * }
FORCE_NOT_NULL ( column_name [, ...] )
FORCE_NULL ( column_name [, ...] )
ENCODING 'encoding_name'
例子
\COPY 将数据拷贝到有自增主键的表 自增主键不出现,只出现要拷贝的列,列名按csv文件中列的顺序来
DELIMITER ';' 分隔符;
CSV 文件格式
HEADER 第一行不读,略过开头
encoding 'LATIN1' 编码设置为拉丁编码 如德语就是拉丁编码
\copy residential_district(district,districtname,reigon, reigonname,sex ) from 'C:/a.csv' with DELIMITER ';' CSV HEADER encoding 'LATIN1'
5.删除所有表
复制以下代码
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
COMMENT ON SCHEMA public IS 'standard public schema';