我在下面的最后一个查询中的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
答案 0 :(得分:0)
您不能将WHERE
子句放入INSERT
语句 - 插入插入新行。您可能正在寻找UPDATE
声明。
我只能猜测,但你可能想要这样的东西:
UPDATE tablename
SET got_date = (%s)
WHERE ((suburb IS NOT NULL)
AND (street_name2 IS NOT NULL)
AND (id > %s));