多个参数 psycopg2 where 子句 - 语法错误

Multiple parameters psycopg2 where clause - Syntax error

我在下面最后一个查询的 WHERE 子句处或附近遇到语法错误。

紧接在它之前的查询只有一个参数可以正常工作,所以我猜测这个错误与我试图传递两个参数这一事实有关。

提前致谢。

cur.execute('''SELECT street_name, id FROM tablename 
            WHERE (((suburb = '') IS NOT FALSE) 
            AND ((street_name2 = '') IS NOT FALSE));''')

datesfrompdf = cur.fetchall()
for rowdate, rowid in datesfrompdf:
    cur.execute("DELETE FROM tablename WHERE id = %s;", (rowid + 1,)  #this works fine

    cur.execute('''INSERT INTO tablename (got_date)
                VALUES (%s) WHERE ((suburb IS NOT NULL)     #syntax error here
                AND (street_name2 IS NOT NULL)
                AND (id > %s));''', (rowdate, rowid))

运行 psql 9.3.14,python 2.7

您不能将 WHERE 子句放入 INSERT 语句中 - insert 插入新行。您可能正在寻找 UPDATE 语句。

我只能猜测,但你可能想要这样的东西:

UPDATE tablename 
    SET got_date = (%s)
    WHERE ((suburb IS NOT NULL)
        AND (street_name2 IS NOT NULL)
        AND (id > %s));