如何使用Python连接器来检查MySQL中的表/数据库是否已经存在?
P粉242535777
P粉242535777 2023-08-28 13:31:54
0
1
501
<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>
P粉242535777
P粉242535777

全部回复(1)
P粉757432491

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

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

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

Tables_in_[database_name]
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板