diff --git a/src/Model/HydraulicStructures/Basic/HydraulicStructures.py b/src/Model/HydraulicStructures/Basic/HydraulicStructures.py
index 706aea6697bf032bd5c4ffca90bc6653e2e294d4..e7a5af5fa7c383624009fbd421a33675beea86a7 100644
--- a/src/Model/HydraulicStructures/Basic/HydraulicStructures.py
+++ b/src/Model/HydraulicStructures/Basic/HydraulicStructures.py
@@ -127,10 +127,6 @@ class BasicHS(SQLSubModel):
         return new
 
     def _db_save(self, execute, data=None):
-        execute(
-            "DELETE FROM hydraulic_structures_basic " +
-            f"WHERE id = {self.id}"
-        )
         hs_id = data['hs_id']
 
         sql = (
diff --git a/src/Model/HydraulicStructures/HydraulicStructures.py b/src/Model/HydraulicStructures/HydraulicStructures.py
index 5d9a747284d2541538a3d3f435112065f1af464c..c301439b891216e058011ceb21f402f9bc4ca415 100644
--- a/src/Model/HydraulicStructures/HydraulicStructures.py
+++ b/src/Model/HydraulicStructures/HydraulicStructures.py
@@ -172,6 +172,11 @@ class HydraulicStructure(SQLSubModel):
         execute(sql)
 
         data['hs_id'] = self.id
+        execute(
+            "DELETE FROM hydraulic_structures_basic " +
+            f"WHERE hs = {self.id}"
+        )
+
         for basic in self._data:
             basic._db_save(execute, data)