查询表名及列名长度超过一定长度的SQL
Posted 狂神314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询表名及列名长度超过一定长度的SQL相关的知识,希望对你有一定的参考价值。
apple=# select * from (select a.relname, char_length(a.relname) as tb_name_length, b.attname, char_length(b.attname) as att_name_length, d.typname, b.attlen, b.attnum from pg_class a, pg_attribute b ,pg_tables c , pg_type d where b.attrelid = a.oid and b.attnum > 0 and c.schemaname = ‘public‘ and a.relname = c.tablename and b.atttypid = d.oid ) as d where d.tb_name_length > 10 or att_name_length > 10; relname | tb_name_length | attname | att_name_length | typname | attlen | attnum -----------------------+----------------+--------------------+-----------------+-----------+--------+-------- test_0001 | 8 | datatypename | 12 | varchar | -1 | 2 test_0001 | 8 | startuptime | 11 | timestamp | 8 | 5
暂时这样写,后续修改从pg_namespace获取schema为public的表:
select * from (select a.relname, char_length(a.relname) as tb_name_length, b.attname, char_length(b.attname) as att_name_length, d.typname, b.attlen, b.attnum from pg_class a, pg_attribute b ,pg_namespace c , pg_type d where b.attrelid = a.oid and b.attnum > 0 and c.nspname = ‘public‘ and a.relnamespace = c.oid and b.atttypid = d.oid ) as d where d.tb_name_length > 10 or att_name_length > 10;
以上是关于查询表名及列名长度超过一定长度的SQL的主要内容,如果未能解决你的问题,请参考以下文章