如何使用Python连接器来检查MySQL中的表/数据库是否已经存在?
P粉242535777
2023-08-28 13:31:54
<p>所以,我想创建一个程序,它将从用户那里获取关于一切的输入,即数据库名称、表名称、表结构(列名)、数据,然后对其执行各种添加、删除、更新等功能。但是我无法检查用户输入的表/数据库是否已经存在。我尝试了以下代码:</p>
<pre class="brush:php;toolbar:false;">def create_table():
table_in_database=input('请输入要在哪个数据库中创建此表的名称:')
x=mysql.connect(host=host_name,user=user_name,password=user_password,database=table_in_database)
y=x.cursor()
if table_in_database in y.fetchall():
name_table=input('请输入要创建的表的名称:')
if name_table in y.fetchall():
print('表已存在,请尝试其他名称或使用现有表')
else:
table_structure=tuple(input('请输入表的结构/行名称(用逗号分隔):'))
y.execute('create table '+name_table+''+table_structure+'')
print('表', name_table, '创建成功')
x.commit()
else:
print('数据库', table_in_database, '不存在')</pre>
<p>但是它无法执行y.fetchall(),所以我什至尝试使用一个不同的函数show_database(),它显示所有数据库,而不是使用y.fetchall(),但是然后出现了NoneType错误。是否有任何方法可以检查表/数据库是否存在? </p>
如果您连接到一个数据库并运行查询
SHOW TABLES;
,它将返回该数据库中所有表的列表。您可以使用条件来精确搜索:
您需要修改列的名称以匹配您的数据库。