Re: Encountered an error

Поиск
Список
Период
Сортировка
От Karsten Hilbert
Тема Re: Encountered an error
Дата
Msg-id 20160310143014.GF9358@hermes.hilbert.loc
обсуждение исходный текст
Ответ на Re: Encountered an error  (Adrian Klaver <adrian.klaver@aklaver.com>)
Ответы Re: Encountered an error  (Karsten Hilbert <Karsten.Hilbert@gmx.net>)
Список psycopg
On Thu, Mar 10, 2016 at 05:02:51AM -0800, Adrian Klaver wrote:

>>                 #First make the appropriate column

> This will not work for the reasons Daniele gave. You have two choices:
>
> 1) Build the SQL string using Python string formatting.
>
> 2) Do it with the Postgres format(). From a psql session:
>
> test=> select format('ALTER tbl_a ADD %I int DEFAULT NULL', 'fld_2');
>                  format
> ----------------------------------------
>  ALTER tbl_a ADD fld_2 int DEFAULT NULL
>
> In psycopg this is a two step process, submit the query and then resubmit
> the returned string.

While this is a nice solution to OPs problem I cannot resist
the urge to point out that to me the whole approach of adding
a column from within client code (outside a database
management application) does have at least a whiff of design
smell to it.

There's probably better ways to implement EAV. Approaches
with JSON, hstore, xml, or the venerable
CREATE TABLE inventory_detail(pk, fk_inventory, detail_name, detail_value)
come to mind.

Regards,
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


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

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Encountered an error
Следующее
От: Karsten Hilbert
Дата:
Сообщение: Re: Encountered an error