2017-03-24 14 views
0

Ich verwende den Cassandra Datastax-Treiber, um eine Löschabfrage auszuführen, und hat keine Auswirkungen auf die Datenbank. Wenn ich genau die gleiche Abfrage über Cqlsh ausführen, funktioniert es gut.Python Cassandra Datastax-Treiberabfragen haben keine Auswirkungen

DEL_QUERY = "DELETE FROM x.user_data WHERE username='{0}' AND usertype = 17;".format(NEW_ID) 
    logger.debug("Query:\n %r", DEL_QUERY) 
    cluster = Cluster([CASSANDRA_HOST], port=CASSANDRA_PORT, cql_version=CASSANDRA_CQL_VERSION, auth_provider=CASSANDRA_AUTH_PROVIDER, protocol_version=3) 
    session = cluster.connect(CASSANDRA_KEYSPACE) 
    logger.debug("Executing Query:\n" + DEL_QUERY) 
    if not test_run: 
     session.execute(DEL_QUERY) 

    logger.debug("Query Executed.") 
    cluster.shutdown() 

Ergebnisse des folgenden Codes in Terminal:

2017-03-27 18:30:10,588 - del - Executing Query: 
"DELETE FROM x.user_data WHERE username='9999999999' AND usertype = 17" 
2017-03-27 18:30:10,630 - del - Query Executed. 

Gibt es etwas falsch mit der Art, wie ich meine Abfrage-String formatiert werden?

(ich habe gewickelt jetzt die Abfrage in einem try/except und es druckt nicht die Ausnahmemeldung)

+0

Können Sie die Abfragezeichenfolge nach der Formatinterpolation freigeben? –

+0

'" DELETE FROM x.user_data WHERE username = '9999999999' UND usertype = 17 "' – bbakp3

Antwort

0

Sieht aus wie Sie Problem haben mit „Formatierung“ die Abfrage.

  1. Drucken DEL_QUERY nach Formatierung und sehen/ausführen in Cqlsh.
  2. Versuchen Sie, hartcodierte Abfrage von Python ohne Formatierung auszuführen.
Verwandte Themen