Re: [GENERAL]

Поиск
Список
Период
Сортировка
От Igor Korot
Тема Re: [GENERAL]
Дата
Msg-id CA+FnnTz+WMTpW=bAm5Q4Hj1w+eHOkeEHRzvEdWy3+Hr-KaxhDw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [GENERAL]  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-general
Hi, ALL

On Thu, May 11, 2017 at 6:47 PM, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:
> On 05/11/2017 07:26 AM, Igor Korot wrote:
>>
>> Adrian et al,
>>
>> On Thu, May 11, 2017 at 9:54 AM, Adrian Klaver
>> <adrian.klaver@aklaver.com> wrote:
>>>
>>> On 05/11/2017 06:24 AM, Igor Korot wrote:
>
>
>> Thank you.
>> Will take a look and modify to use in my program.
>>
>> I presume I'm allowed to do that, right?
>
>
> Yes.

I'm posting this hoping that I will save some time to someone else.

Here is the query I came up with:

SELECT DISTINCT ordinal_position, column_name, data_type,
character_maximum_length, character_octet_length, numeric_precision,
numeric_precision_radix, numeric_scale, is_nullable, column_default,
CASE WHEN column_name IN (SELECT ccu.column_name FROM
information_schema.constraint_column_usage ccu,
information_schema.table_constraints tc WHERE ccu.constraint_name =
tc.constraint_name AND tc.constraint_type = 'PRIMARY KEY' AND
ccu.table_name = $2) THEN 'YES' ELSE 'NO' END AS is_pk  FROM
information_schema.columns col, information_schema.table_constraints
tc WHERE tc.table_schema = col.table_schema AND tc.table_name =
col.table_name AND col.table_schema = $1 AND col.table_name = $2 ORDER
BY ordinal_position;

Is there a better way to do that? I don't mind using Postgres-only solution.

Thank you.

BTW, is there a difference between query a real tables or query a view?

>
>
>
>
> --
> Adrian Klaver
> adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] How to stop array_to_json from interpolating column names that weren't there
Следующее
От: Paul Jungwirth
Дата:
Сообщение: Re: [GENERAL] How to stop array_to_json from interpolating columnnames that weren't there