2017-05-26 25 views
0

以下の最後のクエリのWHERE句で、またはその近くで構文エラーが発生します。複数のパラメータpsycopg2 where句 - 構文エラー

パラメータが1つのみの直前のクエリが正常に動作するため、エラーが2つのパラメータを渡そうとしているという事実と関係があると思います。

ありがとうございます。 psqlの9.3.14、のpython 2.7

答えて

0

を実行

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)) 

あなたはINSERTステートメントにWHERE句を置くことができない - インサートは、新しい行を挿入します。あなたはおそらくUPDATEステートメントを探しています。

私は推測することができますが、お勧めします。このような何か:

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

が文書からそれを拾っている必要があります。ありがとう。 – Kyap