Untitled
unknown
plain_text
2 years ago
1.2 kB
7
Indexable
# ... (previous code)
for index, source_row in source_df.iterrows():
pk_value = source_row[pk]
# Check if the primary key exists in the target DataFrame
if pk_value not in target_df[pk].values:
# Create a DataFrame with the data to insert
data_to_insert = pd.DataFrame([source_row])
data_to_insert.to_sql(name=table_name, con=connection_ext, schema=schema_ext, if_exists='append', index=False)
else:
# Check if there are columns to update
columns_to_update = []
for column_name, source_val in source_row.items():
if column_name not in ('created_by', 'created_on', 'updated_on', 'start_date', 'end_date'):
target_val = target_row[column_name]
if source_val != target_val:
columns_to_update.append({column_name: source_val})
# Create a DataFrame with the data to update
if columns_to_update:
data_to_update = pd.DataFrame(columns_to_update)
data_to_update[pk] = pk_value # Add the primary key column
data_to_update.to_sql(name=table_name, con=connection_ext, schema=schema_ext, if_exists='replace', index=False)
# ... (remaining code)
Editor is loading...