python - comment faire pour vérifier si la table existe?
Je suis à l'aide de cette fonction :
def checker(name,s)
MY_T = "SELECT count(*) FROM `"+session.SessionInfo.Name where EventName='"+name+"'"
Je veux vérifier si la table existe, comment puis-je le faire ?
J'ai vu quelques exemples d'utilisation : XXXX.execute()
ça veut dire quoi?
Voici ce que j'ai vu :
query = cursor.execute("""SELECT count(*) FROM scan WHERE prefix = %s and code_id = %s and answer = %s and station_id = %s""",
(prefix, code_id, answer, station,))
if query != 1:
J'ai essayé d'impression MY_T pour voir si elle renvoie -1 par exemple, mais il imprime juste "select count (*)...... "
Comment puis-je le vérifier?
Toute aide serait très appréciée.
query = cursor.execute("""SELECT count(*) FROM scan WHERE prefix = %s and code_id = %s and answer = %s and station_id = %s""", (prefix, code_id, answer, station,))
C'est très dangereux, vous devez utiliser des variables liées à la place.J'ai peur que cela dépend de la bases de données que vous utilisez. Avec sqlite3, vous pouvez le faire
SELECT * FROM sqlite_master WHERE type = 'table' AND name = 'the_table_name'
La base de données / conducteur êtes-vous? pouvez-vous nous donner plus d'info?
OriginalL'auteur user1386966 | 2013-06-11
Vous devez vous connecter pour publier un commentaire.
Utiliser les "TABLES" de l'information schéma de la vue.
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
Vous pouvez appliquer ce point de vue à votre code, en faisant quelque chose comme ce qui suit:
Je vous recommandons de laisser le curseur.execute() de la fonction de faire des substitutions, plutôt que de le faire vous-même avec str.format()
postgres a également information_schema.tables, cette solution fonctionne pour postgres.
OriginalL'auteur feathj
Si vous utilisez Python-MySQL (MySQLdb) -> http://mysql-python.sourceforge.net/MySQLdb.html
curseur.execute() est la méthode à exécuter des requêtes avec des MySQLdb, Python, MySQL pilote. Vous pouvez passer deux arguments, comme par exemple:
Et exécutera la "déclaration" analyse "paramètres" de la déclaration. Vous devez avoir ouvert une connexion de base de données et également d'ouvrir un curseur
Je pense que vous pouvez utiliser MySQL déclaration: MONTRER des TABLEAUX COMME "tablename";
EDIT: il y aura d'autres Python pilotes ayant le même comportement. Chercher le vôtre 🙂
OriginalL'auteur Alberto Megía
J'ai trouvé que cela fonctionne bien avec Python 3.6 et MySql 5.7:
OriginalL'auteur Jens M.
La réponse ci-dessus peut ne pas fonctionner pour Oracle, j'ai trouvé l'extrait de code ci-dessous fonctionne pour Oracle:
C'est un bon point!
OriginalL'auteur Wendao Liu