@@ -7937,7 +7937,6 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
7937
7937
f"{ dataset .get_current (dataset .pk_column )} );"
7938
7938
),
7939
7939
# don't next_pk(), because child can be plural.
7940
- # don't next_pk(), because child can be plural.
7941
7940
f"UPDATE { tmp_child } SET { pk_column } = NULL;" ,
7942
7941
f"UPDATE { tmp_child } SET { fk_column } = { pk } " ,
7943
7942
f"INSERT INTO { child } SELECT * FROM { tmp_child } ;" ,
@@ -7953,6 +7952,21 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
7953
7952
# we will just send and empty DataFrame
7954
7953
return Result .set (lastrowid = pk )
7955
7954
7955
+ def insert_record (self , table : str , pk : int , pk_column : str , row : dict ):
7956
+ # Remove the pk column
7957
+ row = {self .quote_column (k ): v for k , v in row .items () if k != pk_column }
7958
+
7959
+ # quote appropriately
7960
+ table = self .quote_table (table )
7961
+
7962
+ # Remove the primary key column to ensure autoincrement is used!
7963
+ query = (
7964
+ f"INSERT INTO { table } ({ ', ' .join (key for key in row )} ) VALUES "
7965
+ f"({ ',' .join (self .placeholder for _ in range (len (row )))} ); "
7966
+ )
7967
+ values = [value for key , value in row .items ()]
7968
+ return self .execute (query , tuple (values ))
7969
+
7956
7970
7957
7971
# --------------------------
7958
7972
# TYPEDDICTS AND TYPEALIASES
0 commit comments