Re: Passing in parameters enclosed in double quotes
От | Federico Di Gregorio |
---|---|
Тема | Re: Passing in parameters enclosed in double quotes |
Дата | |
Msg-id | 4EC67BBC.9080907@dndg.it обсуждение исходный текст |
Ответ на | Passing in parameters enclosed in double quotes (Brent Hoover <brent@thebuddhalodge.com>) |
Ответы |
Re: Passing in parameters enclosed in double quotes
|
Список | psycopg |
On 18/11/11 16:31, Brent Hoover wrote: > I am sure this is in the documentation somewhere, but I am stumped as to > where. > > I am trying to pass in a table name to reset a series of sequences. > > conn_cursor.execute("""SELECT setval(pg_get_serial_sequence("%s", %s), > 1, false);""", ( _column[0]), _column[1],)) > > where _column[0] is a table name, and _column[1] is a column name. So > the table name needs to be directly enclosed in double-quotes, but the > psycopg2 adapter is adding single quotes inside that. So instead of > getting "table_name" I get "'table_name'" which does not work. I feel > like is probably an issue of escaping the quotes somehow but I cannot > figure out how. Psycopg2's behavior is completely correct here, it sees > a string and wraps it in quotes, but this case of wanting to access a > table name is somewhat of a special case. > > Thanks so much for such a great piece of software. Use the AsIs adapter: from psycopg2.extensions import AsIs conn_cursor.execute( """SELECT setval(pg_get_serial_sequence("%s", %s), 1, false);""", (AsIs(_column[0]), AsIs(_column[1]))) Hope this helps, federico -- Federico Di Gregorio fog@initd.org But not all bugs are an interesting challenge. Some are just a total waste of my time, which usually is much more valuable than the time of the submitter. -- Md
В списке psycopg по дате отправления: