自动生成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
如果多次插入,避免多次查寻数据库,可以添加缓存。