Der SQLAlchemy-Verbindungspool gibt immer ein zwischengespeichertes Ergebnis zurück [geschlossen]Python

Python-Programme
Guest
 Der SQLAlchemy-Verbindungspool gibt immer ein zwischengespeichertes Ergebnis zurück [geschlossen]

Post by Guest »

Ich verwende den folgenden Code, um Verbindungspooling zu erstellen und SQL-Abfragen auszuführen.

Code: Select all

engine = sqlalchemy.create_engine(
f'mysql+pymysql://{usr}:{pw}@{db_config["host"]}:{db_config["port"]}/'
f'{sub_db}', pool_size=24, max_overflow=40, poolclass=pool.QueuePool)
connection = engine.connect()
pandas.read_sql(sql=my_query, con=connection)
Ich habe jedoch festgestellt, dass die von mir erstellte Verbindung manchmal eine zwischengespeicherte DB zurückgibt:
Z.B. Ich führe die SQL-Funktion „validatePW“ aus, um Token basierend auf einer DB-Tabelle zu validieren. Ich habe zwei Benutzer: A und B mit unterschiedlichen Passwörtern. Das Passwort von Benutzer A ist „PW1“.
Wenn ich pandas.read_sql(sql="select validatePW('A', 'PW1')", con=connection), ich habe eine True-Rückgabe erhalten, die wie erwartet ist. und wenn ich pandas.read_sql(sql="select validatePW('B', 'PW1')", con=connection) zum ersten Mal ausführe, erhalte ich eine False-Rückgabe (B< /strong>s Passwort ist nicht „PW1“).
Wenn ich nun diese beiden Abfragen nacheinander ausführe, werden die Ergebnisse komisch

Code: Select all

pd.read_sql(sql="select validatePW('A', 'PW1')", con=connection)
pd.read_sql(sql="select validatePW('B', 'PW1')", con=connection)
Ich werde zwei True-Rückgaben erhalten, obwohl ich erwarte, dass die zweite Abfrage ein False zurückgeben würde. Es scheint, als würde die Verbindung ein zwischengespeichertes Ergebnis aus der vorherigen Ausführung zurückgeben. Warum ist das so? Gibt es eine Möglichkeit, dies zu vermeiden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post