2017-05-26 47 views
0

在下面的最後一個查詢中,我在WHERE子句或其附近得到語法錯誤。多個參數psycopg2 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,蟒蛇2.7

回答

0

你不能把一個WHERE條款爲INSERT聲明 - 插入插入新行。您可能正在尋找UPDATE聲明。

我只能猜測,但你可能想是這樣的:

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

要精選,多達從文檔。謝了哥們。 – Kyap