On Wed, Mar 03, 2021 at 03:23:28PM -0800, Adrian Klaver wrote:
On 3/3/21 1:51 PM, Hans Ginzel wrote:
You need to do something like:
cur.execute(sql.SQL("INSERT INTO test_default VALUES ({})").format(DEFAULT))
Formating values into SQL statement is done by the execute(), isn't it?
I like the solution from
https://www.postgresql-archive.org/Inserting-default-values-into-execute-values-td6130148.html
https://www.postgresql-archive.org/Inserting-default-values-into-execute-values-td6130148.html
class Default(object):
"""Set up DEFAULT value for a field.
When doing INSERT or UPDATE in Postgres one can use DEFAULT/default
as the value to have the server use the default set on the field.
"""
def __conform__(self, proto):
if proto is psycopg2.extensions.ISQLQuote:
return self
def getquoted(self):
return 'DEFAULT'
DEFAULT = Default()
cursor.execute("INSERT INTO test_default VALUES (%s)", (DEFAULT,))
Could this be added to the psycopg2 code, please?
H.