基于postgresql查询某个字段属于哪个表的说明
一、场景还原
前端小林问我,它从前端的返回的某些字段,想知道那个表有这个字段,它想操作这个表……
二、sql语句
SELECT * FROM information_schema. COLUMNS WHERE COLUMN_NAME = 'storename';
SELECT c.relname AS "表名",a.attname AS "字段名",c.oid FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid WHERE c.relname NOT LIKE 'pg_%' -- AND c.relname = 'kx_store' AND a.attname = 'storename';
补充:postgresql数据库查询所有字段详细信息,包括描述
把里边的public改成相应模式名(默认为public,可不改)
table_name改成对应表名称
SELECT AA.*,BB.DESC FROM ( SELECT A.ORDINAL_POSITION AS COL_NUM, A.COLUMN_NAME AS COL_NAME, A.DATA_TYPE AS COL_TYPE, A.CHARACTER_MAXIMUM_LENGTH AS COL_LEN, A.NUMERIC_PRECISION AS COL_PREC, A.DATETIME_PRECISION AS COL_TIME_PREC, A.IS_NULLABLE AS COL_NULLABLE, A.COLUMN_DEFAULT AS COL_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = 'public' AND A.TABLE_NAME = 'table_name' ) AS AA LEFT JOIN ( SELECT OBJSUBID, DESCRIPTION AS DESC FROM PG_DESCRIPTION WHERE OBJOID = ( SELECT RELID FROM PG_STAT_ALL_TABLES WHERE SCHEMANAME = 'public' AND RELNAME = 'table_name' ) ) AS BB ON AA.COL_NUM = BB.OBJSUBID ORDER BY AA.COL_NUM;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
解决postgresql insert into select无法使用并行查询的问题
本文信息基于PG13.1. 从PG9.6开始支持并行查询.PG11开始支持CREATE TABLE - AS.SELECT INTO以及CREATE MATERIALIZED VIEW的并行查询. 先说结论: 换用create table as 或者select into或者导入导出. 首先跟踪如下查询语句的执行计划: select count(*) from test t1,test1 t2 where t1.id = t2.id ; postgres=# explain analyze se
-
postgresql 实现查询出的数据为空,则设为0的操作
我就废话不多说了~ select name,price from odoo_sale; select name,COALESCE(price, 0) from odoo_sale; 补充:postgresql查询某列的最大值时,对查询结果为空做默认为0的处理 实例如下: select coalesce(max(max_grade),0) from exam_grade where examinee_id = 12345 and exam_id = 1; 查询某个考生在某个指定试卷的最高分,如果没
-
postgresql 补齐空值、自定义查询字段并赋值操作
查询出的数据自定义url字段并赋值 select id,name,'/index/' url from table_name 补充:postgresql 判断是空的_postgresql 数字类型存空值或null值.字段查询处理 1.存储数字类型,包含Integer,Double等,拼接字符串时,数字类型的值拼接成以下 一个stqyghmj 为数据库字段名,第二个stqyghmj 是值变量 stqyghmj = cast(nullif(" + stqyghmj + ", null)AS
-
PostgreSQL 实现查询表字段信息SQL脚本
查询格式: SELECT c.relname 表名称, A.attname AS 字段名称, col_description(A.attrelid,A.attnum) AS 注释, format_type ( A.atttypid, A.atttypmod ) AS 类型, CASE WHEN A.attnotnull='f' THEN '否' ELSE '是' END AS 是否必填, a.attnum 序号 FROM pg_class AS c, pg_attribute AS a WHER
-
基于postgresql查询某个字段属于哪个表的说明
一.场景还原 前端小林问我,它从前端的返回的某些字段,想知道那个表有这个字段,它想操作这个表-- 二.sql语句 SELECT * FROM information_schema. COLUMNS WHERE COLUMN_NAME = 'storename'; SELECT c.relname AS "表名",a.attname AS "字段名",c.oid FROM pg_class c LEFT JOIN pg_attribute a ON a.attreli
-
SQL Server查询某个字段在哪些表中存在
一.查询SQL Server中所有的表 SQL语句: SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句: SELECT * FROM sys.columns name列表示所有的字段名称. 两张表根据object_id进行关联 语法: select * from sys.tables tinner join sys.columns c on t.object_id=c.object and c.name='要查询的字
-
基于JPA查询部分字段的相关事项
JPA查询部分字段相关事项 JPA使用HQL查询部分字段出错 org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped 解决 应该@Entity指定name名,name值为对应表名,同@Table的name值相同 使用HQL的注意 1.想要使用JPA查询部分信息,需要使用HQL 2.select需跟实体,可以是map(必须是小写,大写试了下报错),或者是将待查询的字段单独封装成一个实体,new 实体 3.查询的字
-
基于postgreSql 常用查询小结
1. 日期格式转化(参考) select beg_time, end_time, extract(epoch from to_timestamp(end_time,'yyyy-mm-dd-HH24-MI-SS-US'))-extract(epoch from to_timestamp(beg_time,'yyyy-mm-dd-HH24-MI-SS-US')) from cdb_all_iu_data where beg_time > '2017-09-21' 注:beg_time, end_ti
-
利用Mybatis向PostgreSQL中插入并查询JSON字段
目录 应用场景介绍 数据insert 数据select BATCH 批量插入 前言: 这里我使用的是TimescaleDB,加了一个时间戳字段,不过没差.关于PostgreSQL中Json数据类型的操作,可以参考官网. 应用场景介绍 将TCP发过来的数据包(通过消息队列发过来)解析出数据(一个数据包含有多帧,一帧中含有多条信息),并和本地规则表的格式对应起来.以JsonLineMsg实体类代表对应的一帧数据: package tsdb.entity; import lombok.AllArgsC
-
SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法
SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二: select * from testtable where numeber in (select number from people group by numbe
-
sqlserver给表添加新字段、给表和字段添加备注、更新备注及查询备注(sql语句)
先给大家介绍下sqlserver给表添加新字段.给表和字段添加备注.更新备注及查询备注,代码如下所示: -- 添加新字段及字段备注的语法 USE MY_SlaughterProduct--数据库 ALTER TABLE MY_SP_PackagingWeight--表名 ADD FSummary--字段名 int--类型 default ((0)) --默认值 go --给字段添加注释 EXEC sp_addextendedproperty N'MS_Description', N'是否称重汇总
-
PostgreSQL教程(十五):系统表详解
一.pg_class: 该系统表记录了数据表.索引(仍然需要参阅pg_index).序列.视图.复合类型和一些特殊关系类型的元数据.注意:不是所有字段对所有对象类型都有意义. 名字 类型 引用 描述 relname name 数据类型名字. relnamespace oid pg_namespace.oid 包含这个对象的名字空间(模式)的OI. reltype oid pg_type.oid 对应这个表的行类型的数据类型. relowner oid pg_authid.oid 对象的所有者
-
基于PostgreSql 别名区分大小写的问题
PostgreSql是区分大小写的 如果别名的大小不一致就会提示错误: SELECT * FROM ( SELECT cpi."product_item_id" "PRODUCT_ITEM_ID" FROM prd.up_product_item cpi ) a WHERE a.PRODUCT_ITEM_ID=1 一个很简单的子查询,但是会出错,虽然从语句上看大小写是一致的,但是内部查询中还是使用了小写.PostgreSql对于大写都需要加上双引号的,不然还是视作小
随机推荐
- JDBC中resutset接口操作实例详解
- 一个简单的网站访问JS计数器 刷新1次加1次访问
- 设备管理器经典技巧三则
- oracle数据库冷备份的方法
- Oracle并行操作之并行查询实例解析
- 左右悬浮可分组的网站QQ在线客服代码(可谓经典)
- DevExpress实现TreeList父子节点CheckState状态同步的方法
- C语言实现的阶乘,排列和组合实例
- MySQL常用命令大全脚本之家总结
- Android设置铃声实现代码
- 详解Ngigx+Tomcat配置动静分离,负载均衡
- js实现StringBuffer的简单实例
- JQuery核心函数是什么及使用方法介绍
- 第四篇Bootstrap网格系统偏移列和嵌套列
- 微信小程序 扎金花简单实例
- 详解Spring极速集成注解redis实录
- Java实现在正则表达式中控制大小写的方法
- 一个简洁的多级别论坛
- PHP简单实现合并2个数字键数组值的方法
- PHP出错界面