赞
踩
SELECT table_catalog,table_schema,column_name,ordinal_position,is_nullable,data_type,character_maximum_length,numeric_precision,udt_name
FROM information_schema.columns As c
WHERE table_name = '表名'
查询结果:
table_catalog: | 数据库名 |
table_schema: | 约束 |
table_name: | 表名 |
column_name: | 字段名 |
select a.attnum,a.attname,concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '\(.*\)')) as type,d.description,typnotnull from pg_class c,pg_attribute a,pg_type t,pg_description d
where c.relname='表名' and a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid and d.objoid=a.attrelid and d.objsubid=a.attnum;
查询结果
对(2)的基础上,解决了表中无数据无法查出字段的问题
SELECT A.attname AS field_name,-- 字段名 t.typname as typename, --字段类型 NULLIF(information_schema._pg_char_max_length(A.atttypid, A.atttypmod), -1) AS maxlen, -- 字符串最大长度 col_description ( A.attrelid, A.attnum ) AS COMMENT, -- 字段备注 format_type ( A.atttypid, A.atttypmod ) AS TYPE, A.attnotnull AS NOTNULL , -- 是否非空 A.atthasdef , --是否存在默认值 A.atttypmod FROM pg_class AS C, pg_attribute AS A , pg_type as T WHERE C.relname = 'aaa' AND A.attrelid = C.oid AND A.atttypid= T.oid AND A.attnum > 0 AND NOT A.attisdropped
AND NOT A.attisdropped 过滤掉已删除的字段
查询结果:
select "AREA_CODE" from geo_cun where st_intersects(geom,ST_GeomFromText('POINT(116 39)', 4326));
SELECT jsonb_build_object ('type','FeatureCollection','features',jsonb_agg (feature)) as geojson
FROM (SELECT jsonb_build_object ('type','Feature','geometry',ST_AsGeoJSON (mgeom) :: jsonb,'properties',to_jsonb (ROW) - 'mgeom') AS feature FROM
(SELECT mgeom,ST_CoordDim(mgeom) FROM zrzhczt_ggfwss_xx where not ST_IsEmpty(mgeom) ) ROW) features
select ST_Centroid(geometry);
select array_to_json(array_agg(row_to_json(t))) from (
select * from tableA order by px
) t ;
geoc_data为数据库的名
SELECT pg_size_pretty( pg_database_size('geoc_data') );
查询结果:
data_11001000031为表名
SELECT pg_size_pretty( pg_total_relation_size('data_11001000031') );
查询结果:
如果想查出所有不为某个值的条件,需要考虑null的情况:
eg: and (field!=‘1’ or field is null)
delete from ( SELECT *,ROW_NUMBER() OVER(PARTITION by ${业务主键字段} ORDER BY "${排序字段}" desc)idx FROM "${数据表名}" ) aa where aa.idx!=1
select oid from pg_class where relname='xzq_statistic'
select pid from pg_locks where relation='oid' -- 上个查询出来的oid 如果存在锁表,能查询出来pid
select pg_cancel_backend(pid) -- 上个查询出来的pid
SELECT pid, datname, usename, client_addr, application_name, STATE, backend_start, xact_start, xact_stay, query_start, query_stay, REPLACE ( query, chr( 10 ), ' ' ) AS query FROM ( SELECT pid, pgsa.datname AS datname, pgsa.usename AS usename, pgsa.client_addr client_addr, pgsa.application_name AS application_name, pgsa.STATE AS STATE, pgsa.backend_start AS backend_start, pgsa.xact_start AS xact_start, EXTRACT ( epoch FROM ( now() - pgsa.xact_start )) AS xact_stay, pgsa.query_start AS query_start, EXTRACT ( epoch FROM ( now() - pgsa.query_start )) AS query_stay, pgsa.query AS query FROM pg_stat_activity AS pgsa WHERE pgsa.STATE != 'idle' AND pgsa.STATE != 'idle in transaction' AND pgsa.STATE != 'idle in transaction (aborted)' ) idleconnections ORDER BY query_stay DESC LIMIT 50;
-- 首先断开正在的连接(可多执行几次)
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='db_name' AND pid<>pg_backend_pid();
ALTER DATABASE db_name RENAME TO db_name_new;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。