recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment utiliser le connecteur Python pour vérifier si une table/base de données dans MySQL existe déjà ?

<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粉242535777P粉242535777445 Il y a quelques jours505

répondre à tous(1)je répondrai

  • P粉757432491

    P粉7574324912023-08-29 11:40:21

    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]

    répondre
    0
  • Annulerrépondre