搜索

首页  >  问答  >  正文

如何使用Python连接器来检查MySQL中的表/数据库是否已经存在?

<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粉242535777P粉242535777445 天前503

全部回复(1)我来回复

  • P粉757432491

    P粉7574324912023-08-29 11:40:21

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

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

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

    Tables_in_[database_name]

    回复
    0
  • 取消回复