自动生成sql插入语句小函数

 

写一些小脚本的时候,可以用。

# 如果有需要可以用装饰器配置缓存。
def auto_create_sql_statement(db_cursor, table_name):
    base_sql = 'INSERT INTO `{}` '
    base_sql_with_table_name = base_sql.format(table_name)
    # 传入cursor的对象,调用查寻字段的语句
    columns_info = db_cursor.selectDb(f'SHOW FULL COLUMNS FROM {table_name}')
    # 没有自增长的字段
    columns_name_list = [i[0] for i in columns_info if 'auto_increment' not in i]
    c_number = len(columns_name_list)
    columns_path_str = ', '.join(columns_name_list)
    base_sql_with_table_name_columns = base_sql_with_table_name + '(' + columns_path_str + ') VALUES '
    last_path = ('%s, ' * c_number).rstrip(', ')
    fina_sql_statement = base_sql_with_table_name_columns + '(' + last_path + ')'
    # print(fina_sql_statement)
    return fina_sql_statement

  如果多次插入,避免多次查寻数据库,可以添加缓存。

  

posted @ 2021-01-22 19:02  就是想学习  阅读(293)  评论(0编辑  收藏  举报