On Fri, Apr 29, 2016 at 1:20 PM, Melvin Davidson <melvin6...@gmail.com>
wrote:

>
>
> On Fri, Apr 29, 2016 at 2:07 PM, Dustin Kempter <
> dust...@consistentstate.com> wrote:
>
>> Hi all,
>> Is there a query I can run that will scan through all the tables of a
>> database and give me a list of all tables without a primary key? Im not
>> having any luck with this.
>>
>> Thanks in advance!
>
>

>
>> Please, ALWAYS provide Postgresql version & O/S, regardless of whether
> you think it is pertinet.
>
>
> Now try this:
>
> SELECT n.nspname, c.relname as table
>   FROM pg_class c
>     JOIN pg_namespace n ON (n.oid =c.relnamespace )
>  WHERE relkind = 'r' AND
>        relname NOT LIKE 'pg_%' AND
>        relname NOT LIKE 'sql_%' AND
>        relhaspkey = FALSE
> ORDER BY n.nspname, c.relname;
>

​That gives a list of all tables in all schemas in the database. But this
needs to be refined to those without a primary key. Using the -E switch, I
looked at the output from \di+ <table>, which will list ​whether the table
has a primary key or not, that command is implemented via multiple SELECT
statements which I haven't reviewed yet.



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



-- 
The unfacts, did we have them, are too imprecisely few to warrant our
certitude.

Maranatha! <><
John McKown

Reply via email to