File tree Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Original file line number Diff line number Diff line change @@ -197,8 +197,7 @@ impl ExportContext {
197197 . map ( |f| format ! ( "\" {}\" " , f. name) )
198198 . collect :: < Vec < _ > > ( )
199199 . join ( ", " ) ;
200- let value_fields = value_fields_schema
201- . iter ( )
200+ let all_fields = ( key_fields_schema. iter ( ) . chain ( value_fields_schema. iter ( ) ) )
202201 . map ( |f| format ! ( "\" {}\" " , f. name) )
203202 . collect :: < Vec < _ > > ( )
204203 . join ( ", " ) ;
@@ -211,15 +210,15 @@ impl ExportContext {
211210 Ok ( Self {
212211 db_ref,
213212 db_pool,
213+ upsert_sql_prefix : format ! ( "INSERT INTO {table_name} ({all_fields}) VALUES " ) ,
214+ upsert_sql_suffix : if value_fields_schema. is_empty ( ) {
215+ format ! ( " ON CONFLICT ({key_fields}) DO NOTHING;" )
216+ } else {
217+ format ! ( " ON CONFLICT ({key_fields}) DO UPDATE SET {set_value_fields};" )
218+ } ,
219+ delete_sql_prefix : format ! ( "DELETE FROM {table_name} WHERE " ) ,
214220 key_fields_schema,
215221 value_fields_schema,
216- upsert_sql_prefix : format ! (
217- "INSERT INTO {table_name} ({key_fields}, {value_fields}) VALUES "
218- ) ,
219- upsert_sql_suffix : format ! (
220- " ON CONFLICT ({key_fields}) DO UPDATE SET {set_value_fields};"
221- ) ,
222- delete_sql_prefix : format ! ( "DELETE FROM {table_name} WHERE " ) ,
223222 } )
224223 }
225224}
You can’t perform that action at this time.
0 commit comments