Re: Update with function

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Update with function
Дата
Msg-id 4F75B8FF.4080400@gmail.com
обсуждение исходный текст
Ответ на Update with function  (egbert <egbert.bouwman@xs4all.nl>)
Ответы Re: Update with function  (egbert <egbert.bouwman@xs4all.nl>)
Список psycopg
On 03/30/2012 03:58 AM, egbert wrote:
> Hello,
> I am new to this list, and a fairly unsophisticated user of postgresql
> and psycopg.
>
> I try to update one field in all records of a table.
> The new value is too complicated for a simple expression, so I thought
> about a python function. That function uses another field, recno, from
> each record.
> My question is: how do I pass that second field to the function.
>
> The relevant parts of my script are now:
>
> define makeyear(nummer):
>      # ...
>      return value
>
> cur.execute("update books set inyear=%s", (makeyear(recno),))
>
> The error message says that recno is not defined.


The parameter list you are passing lives outside the database you are
using so it has no reference to the field recno.

A simple solution that demonstrates one way to do the above:


cur.execute("select recno from some_table")

for row in cur:
    recno = cur[0]
    cur.execute("update books set inyear=%s", (makeyear(recno),))

> egbert


--
Adrian Klaver
adrian.klaver@gmail.com

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

Предыдущее
От: egbert
Дата:
Сообщение: Update with function
Следующее
От: egbert
Дата:
Сообщение: Re: Update with function