Wie überprüfe ich mit dem Python-Connector, ob eine Tabelle/Datenbank in MySQL bereits vorhanden ist?
P粉242535777
2023-08-28 13:31:54
<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>
如果您连接到一个数据库并运行查询
SHOW TABLES;
,它将返回该数据库中所有表的列表。您可以使用条件来精确搜索:
您需要修改列的名称以匹配您的数据库。