所以,我想创建一个程序,它将从用户那里获取关于一切的输入,即数据库名称、表名称、表结构(列名)、数据,然后对其执行各种添加、删除、更新等功能。但是我无法检查用户输入的表/数据库是否已经存在。我尝试了以下代码:
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错误。是否有任何方法可以检查表/数据库是否存在?
如果您连接到一个数据库并运行查询
SHOW TABLES;
,它将返回该数据库中所有表的列表。您可以使用条件来精确搜索:
您需要修改列的名称以匹配您的数据库。