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