Files
ai-admin-server/app/general/general_utils/build_insert_sql.py
T

41 lines
1.1 KiB
Python

from app.general.general_utils.sql_utils import format_columns, get_value, get_value_sql, log_sql
def build_insert_sql(module_config, row):
column_info = format_columns(module_config["columns"])
sqls = [f"insert into {get_value(module_config, 'tableName')}"]
values = []
field_sql_left_list = []
field_sql_right_list = []
field_sql_right_values = []
for hump_name, column in column_info['hump_to_columns'].items():
value = get_value(row, hump_name)
# if (value === undefined) {return;}
if value is None:
continue;
if 't1.' not in column['query']:
continue
field_sql_left_list.append(column['col_name'])
field_sql_right_list.append(get_value_sql(
value=value,
value_type=column['valueType'],
sql_values=field_sql_right_values,
))
sqls.append(f"( {', '.join(field_sql_left_list)} ) ")
sqls.append("values")
sqls.append(f"( {', '.join(field_sql_right_list)} )")
values.extend(field_sql_right_values)
sql = ' '.join(sqls)
log_sql(sql, values)
sql = sql.replace("?", "%s")
return (sql, values)
# build_insert_sql(DEMO_MODULE_CONFIG, {"normalText": "123", "numberVal": 213})