使用 Psycopg 插入 PostgreSQL 函数
Insert PostgreSQL function using Psycopg
when arguments parameters to the execute method, in the case when using python 变量的形式:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""",
(10, datetime.datetime.now(datetime.timezone.utc), "O'Reilly"))
所有值都必须是 python?是否有传递 PostgreSQL 函数的选项,例如在 UTC 时间的情况下,传递 NOW()
而不是 datetime.datetime.now(datetime.timezone.utc)
或者这只能以以下形式完成:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (123, NOW(), 'str');
""")
当所有值都写入 PostgreSQL 时
有几种方法可以做到这一点:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, NOW(), %s);
""", [123, 'str'])
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""", [123, 'now', 'str'])
'now'
有效,因为这是这里的特例 Current Date/time
when arguments parameters to the execute method, in the case when using python 变量的形式:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""",
(10, datetime.datetime.now(datetime.timezone.utc), "O'Reilly"))
所有值都必须是 python?是否有传递 PostgreSQL 函数的选项,例如在 UTC 时间的情况下,传递 NOW()
而不是 datetime.datetime.now(datetime.timezone.utc)
或者这只能以以下形式完成:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (123, NOW(), 'str');
""")
当所有值都写入 PostgreSQL 时
有几种方法可以做到这一点:
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, NOW(), %s);
""", [123, 'str'])
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""", [123, 'now', 'str'])
'now'
有效,因为这是这里的特例 Current Date/time