Comment utiliser le connecteur Python pour vérifier si une table/base de données dans MySQL existe déjà ?
P粉242535777
2023-08-28 13:31:54
<p>Donc, je souhaite créer un programme qui prendra en compte les commentaires de l'utilisateur sur tout, c'est-à-dire le nom de la base de données, le nom de la table, la structure de la table (noms de colonnes), les données, puis effectuera divers ajouts, suppressions, mises à jour et autres. les fonctions. Mais je ne peux pas vérifier si la table/base de données saisie par l'utilisateur existe déjà. J'ai essayé le code suivant : </p>
<pre class="brush:php;toolbar:false;">def create_table() :
table_in_database=input('Veuillez saisir le nom de la base de données dans laquelle vous souhaitez créer cette table :')
x = mysql.connect (hôte = nom_hôte, utilisateur = nom_utilisateur, mot de passe = mot de passe utilisateur, base de données = table_in_database)
y=x.curseur()
si table_in_database dans y.fetchall() :
name_table=input('Veuillez saisir le nom de la table à créer :')
si name_table dans y.fetchall() :
print('La table existe déjà, veuillez essayer un autre nom ou utiliser une table existante')
autre:
table_structure=tuple(input('Veuillez saisir les noms de structure/ligne de la table (séparés par des virgules) :'))
y.execute('créer une table '+nom_table+''+table_structure+'')
print('table', name_table, 'créé avec succès')
x.commit()
autre:
print('base de données', table_in_database, 'n'existe pas')</pre>
<p>Mais cela ne parvient pas à faire y.fetchall(), alors j'ai même essayé d'utiliser une fonction différente show_database() qui affiche toutes les bases de données au lieu d'utiliser y.fetchall(), mais j'ai ensuite eu une erreur NoneType. Existe-t-il un moyen de vérifier si la table/base de données existe ? </p>
Si vous vous connectez à une base de données et exécutez une requête
SHOW TABLES;
, elle renverra une liste de toutes les tables de cette base de données.Vous pouvez utiliser des critères pour affiner votre recherche :
Vous devez modifier les noms des colonnes pour qu'ils correspondent à votre base de données.