Heim  >  Fragen und Antworten  >  Hauptteil

Wie überprüfe ich mit dem Python-Connector, ob eine Tabelle/Datenbank in MySQL bereits vorhanden ist?

<p>Ich möchte also ein Programm erstellen, das Eingaben des Benutzers zu allem entgegennimmt, d. h. Datenbankname, Tabellenname, Tabellenstruktur (Spaltennamen), Daten, und dann verschiedene Hinzufügungen, Löschungen, Aktualisierungen usw. durchführt Funktionen. Ich kann jedoch nicht überprüfen, ob die vom Benutzer eingegebene Tabelle/Datenbank bereits existiert. Ich habe den folgenden Code ausprobiert: </p> <pre class="brush:php;toolbar:false;">def create_table(): table_in_database=input('Bitte geben Sie den Namen der Datenbank ein, in der Sie diese Tabelle erstellen möchten:') x=mysql.connect(host=host_name,user=user_name,password=user_password,database=table_in_database) y=x.cursor() wenn table_in_database in y.fetchall(): name_table=input('Bitte geben Sie den Namen der zu erstellenden Tabelle ein:') wenn name_table in y.fetchall(): print('Tabelle existiert bereits, bitte versuchen Sie es mit einem anderen Namen oder verwenden Sie eine vorhandene Tabelle') anders: table_structure=tuple(input('Bitte geben Sie die Struktur-/Zeilennamen der Tabelle ein (durch Kommas getrennt):')) y.execute('create table '+name_table+''+table_structure+'') print('table', name_table, 'Erfolgreich erstellt') x.commit() anders: print('database', table_in_database, 'existiert nicht')</pre> <p>Aber y.fetchall() funktioniert nicht, also habe ich sogar versucht, eine andere Funktion show_database() zu verwenden, die alle Datenbanken anzeigt, anstatt y.fetchall() zu verwenden, aber dann habe ich einen NoneType-Fehler erhalten. Gibt es eine Möglichkeit zu überprüfen, ob die Tabelle/Datenbank existiert? </p>
P粉242535777P粉242535777396 Tage vor462

Antworte allen(1)Ich werde antworten

  • P粉757432491

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

    如果您连接到一个数据库并运行查询 SHOW TABLES;,它将返回该数据库中所有表的列表。
    您可以使用条件来精确搜索:

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

    您需要修改列的名称以匹配您的数据库。

    Tables_in_[database_name]

    Antwort
    0
  • StornierenAntwort