Hi,

On Tue, Aug 22, 2017 at 6:18 PM, Igor Korot <ikoro...@gmail.com> wrote:

> Melvin et al,
>
> On Tue, Aug 22, 2017 at 12:55 PM, Melvin Davidson <melvin6...@gmail.com>
> wrote:
>
>>
>>
>>
>> *While the information_schema is useful, there is no substitute for
>> learning how to use the pg_catalog and system information functions.*
>>
>>
>> *See if this query gives you what you are looking for:*
>>
>>
>>
>>
>>
>>
>> *SELECT rel.relname,       con.conname,       con.contype,
>> con.consrc,       pg_get_constraintdef(con.oid, true)  FROM pg_class rel
>> JOIN pg_constraint con ON (con.conrelid = rel.oid)*
>>
>> *ORDER by relname,         contype,         conname;*
>>
>
> I tried your query, but its not really what I'm looking for.
>
> This is what I'm looking for (taken from SQLite shell):
>
> sqlite> PRAGMA foreign_key_list(leaguescorehitter);
> id|seq|table|from|to|on_update|on_delete|match
> 0|0|scorehits|scoreid|scoreid|NO ACTION|NO ACTION|NONE
> 1|0|playersinleague|id|id|NO ACTION|NO ACTION|NONE
> 1|1|playersinleague|playerid|playerid|NO ACTION|NO ACTION|NONE
> 2|0|leagues|id|id|NO ACTION|NO ACTION|NONE
>
> Can I get something from PostgreSQL?
>
> Thank you.
>

It looks like I will be able to get what I want by using pg_constraint.oid.
I will just need to check it.

Trouble is - I won't be able to connect this table to information_schema
view
so my query will become kind of ugly. But I guess I can live with that as
long
as I have what I need. ;-)

Thank you  for the hint, Melvin.



>
>>
>> On Tue, Aug 22, 2017 at 12:42 PM, Igor Korot <ikoro...@gmail.com> wrote:
>>
>>> Hi, David,
>>>
>>> On Tue, Aug 22, 2017 at 12:06 PM, David G. Johnston
>>> <david.g.johns...@gmail.com> wrote:
>>> > On Tue, Aug 22, 2017 at 8:43 AM, Igor Korot <ikoro...@gmail.com>
>>> wrote:
>>> >>
>>> >> Or this is the bug in 9.1?
>>> >> Since it looks like there are 2 columns with the same info in 1
>>> >> table/view....
>>> >
>>> >
>>> > This old email thread sounds similar to what you are describing here.
>>> >
>>> > https://www.postgresql.org/message-id/56D0C4B8.7020200%40aklaver.com
>>>
>>> Consider following table creation command:
>>>
>>> CREATE TABLE leaguescorehitter(id integer, playerid integer, scoreid
>>> integer, value double, foreign key(id) references leagues(id), foreign
>>> key(id, playerid) references playersinleague(id, playerid), foreign
>>> key(scoreid) references scorehits(scoreid));
>>>
>>> There are 3 foreign keys in this table for which there are 4 rows
>>> displayed in my query as it should be:
>>>
>>> 1 for leagues(id)
>>> 1 for scorehits(scoreid)
>>> 2 for playersinleague(id,playerid) - 1 row per field
>>>
>>> However what I would expect to see is:
>>>
>>> [code]
>>> ordinal_position      |    position_in_unique_constraint
>>>       0                                      1
>>>                            - this is for leagues(id)
>>>       1                                      1
>>>       1                                      2
>>>                            - those 2 are for
>>> playersinleague(id,playerid)
>>>       2                                      1
>>>                            - this is for scorehits(scoreid)
>>> [/code]
>>>
>>> Instead I got ordinal_positionv = position_in_unique_constraints and
>>> can't tell
>>> which constraint is which, or more precisely, when the one ends and
>>> second starts.
>>>
>>> Hopefully this above will not be mangled and the spacing will be kept.
>>>
>>> Thank you.
>>>
>>> >
>>> > David J.
>>> >
>>>
>>>
>>> --
>>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pgsql-general
>>>
>>
>>
>>
>> --
>> *Melvin Davidson*
>> I reserve the right to fantasize.  Whether or not you
>> wish to share my fantasy is entirely up to you.
>>
>
>

Reply via email to