Comment utiliser le connecteur Python pour vérifier si une table/base de données dans MySQL existe déjà ?
P粉242535777
P粉242535777 2023-08-28 13:31:54
0
1
534
<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>
P粉242535777
P粉242535777

répondre à tous(1)
P粉757432491

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 :

SHOW tables 
WHERE Tables_in_test ='triangle';
+----------------+
| Tables_in_test |
+----------------+
| triangle       |
+----------------+

Vous devez modifier les noms des colonnes pour qu'ils correspondent à votre base de données.

Tables_in_[database_name]
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal