J'utilise le package databases dans mon application fastapi. databases a des fonctions d'exécution et de récupération, lorsque j'ai essayé de renvoyer des valeurs de colonne après avoir inséré ou mis à jour en utilisant execute, il ne renvoie que la première valeur, comment obtenir toutes les valeurs sans utiliser fetch ..
Ceci est ma requête
Table INSERT INTO (col1, col2, col3, col4) VALUES (val1, val2, val3, val4) RETURNING col1, col2;
3 Réponses :
Vous pouvez utiliser la méthode de requête ayant les paramètres offset = 0 et limit = None pour obtenir toutes les colonnes
from typing import Optional limit: Optional[int] = None
Vous pouvez vous référer à ce lien pour en savoir plus: https://fastapi.tiangolo.com/tutorial/sql-databases/
si vous utilisez mypy, vous devez dire à l'interpréteur que la valeur limite peut être Aucune
db.query({YOUR TABLE OBJECT}).offset(0).limit(None).all()
J'utilise des requêtes brutes et je les transmets à la fonction d'exécution de la base de données et ne renvoie que la valeur col1, ..
Et qu'en est-il de la valeur col2? à cause de cela, il devrait renvoyer col1 et col2 INSERT INTO table (col1, col2, col3, col4) VALUES (val1, val2, val3, val4) RETURNING col1, col2 ;
ne renvoyant que la valeur col1, je ne sais pas ce qui se passe dans les autres colonnes
J'utilise la fonction d'exécution du package de bases de données, il prend la requête brute comme argument
Quel langage de serveur de base de données vous utilisez comme PostgreSQL, MySQL ou SQLite
en utilisant PostgresQL
puis l'instruction de retour n'affichera que le tuple qui a été inséré dans la table
INSERT INTO table (col1, col2, col3, col4) VALUES (val1, val2, val3, val4) RETURNING (col1, col2);
vous pouvez utiliser cette requête pour obtenir toutes les colonnes
J'ai eu des problèmes avec ça aussi, c'était ma requête:
INSÉRER DANS les notes (texte, terminé) VALEURS (: texte,: terminé) RETURNING notes.id, notes.text, notes.completed
L'utilisation de database.execute (...)
ne retournera que la première colonne.
Mais .. l'utilisation de database.fetch_one (...)
insère les données et renvoie toutes les colonnes.
Espère que cela aide