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

所以,我想创建一个程序,它将从用户那里获取关于一切的输入,即数据库名称、表名称、表结构(列名)、数据,然后对其执行各种添加、删除、更新等功能。但是我无法检查用户输入的表/数据库是否已经存在。我尝试了以下代码:

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, '不存在')

但是它无法执行y.fetchall(),所以我什至尝试使用一个不同的函数show_database(),它显示所有数据库,而不是使用y.fetchall(),但是然后出现了NoneType错误。是否有任何方法可以检查表/数据库是否存在?

P粉242535777
P粉242535777

全部回复 (1)
P粉757432491

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

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

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

Tables_in_[database_name]
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!