Re: [GENERAL] Schema Information .

From: Melvin Davidson <melvin6925(at)gmail(dot)com>
To: Brahmam Eswar <brahmam1234(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: [GENERAL] Schema Information .
Date: 2017-12-05 14:03:59
Message-ID: CANu8FiyE6oeyAG459V_9+rWxUBN4G7O+hsu+E6-pibeKVwcZZA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Dec 5, 2017 at 4:09 AM, Brahmam Eswar <brahmam1234(at)gmail(dot)com> wrote:

> Thanks David for your quick response.
>
> I'm using below query to pull the schema information ,but the count of
> rows in table is giving wrong ,i can see the count of records using select
> count(*) from <table_Name> . How do we get an exact number of rows in table.
>
>
> SELECT C.relname AS Table_Name,
> C.relnatts AS NUM_COLS,
> C.reltuples::bigint AS NUM_ROWS,
> C.relhastriggers AS Has_Triggers,
> C.relhasindex AS HAS_INDEX
> FROM pg_class C
> JOIN pg_namespace N ON (N.oid = C.relnamespace)
> WHERE n.nspname='ap' and C.relkind='r' ORDER BY C.relname ;
>
> On Mon, Dec 4, 2017 at 9:20 PM, Melvin Davidson <melvin6925(at)gmail(dot)com>
> wrote:
>
>>
>>
>> On Mon, Dec 4, 2017 at 9:17 AM, Brahmam Eswar <brahmam1234(at)gmail(dot)com>
>> wrote:
>>
>>> Hi ,
>>>
>>> Is there anyway to pull the complete information of tables in a
>>> particular schema .
>>>
>>> Table_Name ,Num_Rows,Columns,Indexed_Columns,Triggers.
>>>
>>>
>>>
>>> The context of this request is ,we are migrating the database from
>>> Oracle to PostgreSQl,,so we need to verify the data after perform data
>>> migration from oracle.
>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Brahmeswara Rao J.
>>>
>>
>> >Is there anyway to pull the complete information of tables in a
>> particular schema .
>>
>> The following query will give you all the tables and columns in a schema:
>>
>> SELECT n.nspname AS schema,
>> c.relname AS table,
>> a.attname AS column,
>> a.attnum AS col_pos
>> FROM pg_namespace n
>> JOIN pg_class c ON c.relnamespace = n.oid
>> JOIN pg_attribute a ON a.attrelid = c.oid
>> WHERE n.nspname = 'your_schema'
>> AND relkind = 'r'
>> AND a.attnum > 0
>> ORDER BY 1, 2, 4;
>>
>> To obtain information about indexed columns and triggers, you will also
>> need to query
>> pg_index and pg_trigger
>>
>> https://www.postgresql.org/docs/9.6/static/catalogs.html
>>
>> You might also find it easier to look at the information_schema
>>
>> <https://www.postgresql.org/docs/9.6/static/information-schema.html>
>> https://www.postgresql.org/docs/9.6/static/information-schema.html
>>
>>
>>
>> --
>> *Melvin Davidson*
>> I reserve the right to fantasize. Whether or not you
>> wish to share my fantasy is entirely up to you.
>>
>
>
>
> --
> Thanks & Regards,
> Brahmeswara Rao J.
>

>Thanks David for your quick response.

My name is NOT David! It is Melvin.

>How do we get an exact number of rows in table.

As stated in the _documentation_, reltuples "This is only an estimate used
by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands
such as CREATE INDEX."

https://www.postgresql.org/docs/9.6/static/catalog-pg-class.html

Did you analyze your database before executing the query?
The reltuples are only updated during an analyze.

You need to do a
VACUUMDB -z -d yourdb_name

Also, in the future, please be kind enough to state your PostgreSQL VERSION
and O/S.

--
*Melvin Davidson*
I reserve the right to fantasize. Whether or not you
wish to share my fantasy is entirely up to you.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message bricklen 2017-12-05 15:27:29 Re: Replica on low-bandwitdh network
Previous Message Job 2017-12-05 09:12:09 Replica on low-bandwitdh network