diff --git a/CHANGELOG.md b/CHANGELOG.md
index 32bb62a0e2672ee916de2d6137b27ed1a91d0659..503a728f0e8b8fea5ee963332f35157ef4adaf8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 Changelog
 =========
 
+5.1.1
+-----
+- [FIX] Import : seules les données issues de la source concernée doivent être préalablement purgées, pas toute la table. 
+
 5.1.0
 -----
 - Import : le SOURCE_ID peut être fourni dans les données à importer ou en dur dans la config via l'attribut 'code' de la 'source' ; 
diff --git a/src/UnicaenDbImport/Service/Database/DatabaseService.php b/src/UnicaenDbImport/Service/Database/DatabaseService.php
index 37ddf14babdad713fb07f4f482233ab7e59b5c29..eb76d9360f50177825d5bfd650a83513c51dd9f9 100644
--- a/src/UnicaenDbImport/Service/Database/DatabaseService.php
+++ b/src/UnicaenDbImport/Service/Database/DatabaseService.php
@@ -344,7 +344,18 @@ class DatabaseService
      */
     public function truncateDestinationTable()
     {
+        // détermination de l'id de la source des données à insérer, pour n'effacer que les données de cette source
+        // (si aucune donnée à insérer, basta)
+        $data = $this->source->getData();
+        if (empty($data)) {
+            return;
+        }
+        $row1 = reset($data);
+        $preparedRow1 = $this->prepareSourceData($row1);
+        $sourceId = $preparedRow1['source_id'] ?? $preparedRow1['SOURCE_ID'];
+
         $sql = $this->codeGenerator->generateSQLForClearTable($table = $this->destination->getTable());
+        $sql .= " WHERE source_id = (SELECT id FROM source WHERE code = '$sourceId')";
         try {
             $this->queryExecutor->exec($sql, $this->destination->getConnection());
         } catch (Exception $e) {