diff --git a/R/create_dummy.R b/R/create_dummy.R
index 1fe3b81a00e5aac4d4335522ba849e6ef5f7cb9f..2284c5123e3c58b7bdc5dc93099adb5b0f444747 100644
--- a/R/create_dummy.R
+++ b/R/create_dummy.R
@@ -28,7 +28,7 @@
 #'              schema = "public",
 #'              table = "dummy",
 #'              pk = NULL,
-#'              id_range = "1:5"
+#'              id_range = "1:5",
 #'              role = "runner")
 #' }
 create_dummy <- function(host, database, schema, table, pk = NULL,
diff --git a/R/import_and_merge_tables.R b/R/import_and_merge_tables.R
index ac35de3940a895337f001649159625dc3eaf7e23..f7133b7fac0d60ae7a42c61699becba3f409e94e 100644
--- a/R/import_and_merge_tables.R
+++ b/R/import_and_merge_tables.R
@@ -23,14 +23,14 @@
 #' @export
 #' @examples
 #' \dontrun{
-#' # Créer une table dummy dans le schéma collectr de la base production
+#' # Créer une table source dans le schéma public de la base collectr
 #' create_dummy(host = "localhost",
 #'              database = "collectr",
 #'              schema = "public",
 #'              table = "source",
 #'              pk = "id",
 #'              role = "runner")
-#' # Créer une table dummy dans le schéma collectr de la base production
+#' # Créer une table target dans le schéma public de la base collectr
 #' create_dummy(host = "localhost",
 #'              database = "collectr",
 #'              schema = "public",
diff --git a/R/insert_into_table.R b/R/insert_into_table.R
index 9083407b12e3c31ffc50fbe737e9fbf3dc22434c..1e3b040fb13f27b378eed2db5bd11cc291227358 100644
--- a/R/insert_into_table.R
+++ b/R/insert_into_table.R
@@ -1,19 +1,20 @@
 
 #' Insère un dataframe dans une table existante
 #'
-#' @description Fonction pour insérer les données d'un dataframe dans une table 
-#' existante d'une base de données PostgreSQL, en vérifiant la correspondance 
-#' de la structure entre le dataframe et la table. Si la correspondance est 
+#' @description Fonction pour insérer les données d'un dataframe dans une table
+#' existante d'une base de données PostgreSQL, en vérifiant la correspondance
+#' de la structure entre le dataframe et la table. Si la correspondance est
 #' vérifiée, les données sont insérées dans la table. Si la correspondance
 #' n'est pas vérifiée les différences de strcture entre le dataframe et la table
 #' sont listées.
 #'
+#' @param host Hôte de la base de données PostgreSQL.
 #' @param database Nom de la base de données.
 #' @param schema Le schéma de la table dans la base de données.
 #' @param table Le nom de la table existante dans la base de données.
 #' @param dataframe Le dataframe contenant les données à insérer.
 #' @param role Le rôle du propriétaire de la table.
-#' 
+#'
 #' @return Le nombre de lignes insérées dans la table en base.
 #'
 #' @importFrom datalibaba connect_to_db
@@ -23,54 +24,61 @@
 #' @export
 #' @examples
 #' \dontrun{
-#' # Création d'un dataframe à partir d'un fichier XLSX
-#' data_ars_2022 <- collectr::import_xlsx(
-#'   filepath = "C:\\TEMP\\Nitrates_2022.xlsx",
-#'   sheet = 1,
-#'   row = 1)
-#'
-#' # Ajout d'un champs de géométrie
-#' data_ars_2022 <- data_ars_2022 |>
-#'   dplyr::select(-coord_x,-coord_y) |>
-#'   dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-#'
+#' # Créer une dataframe source
+#' source <- data.frame(
+#'   id = 6:10,
+#'   name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+#'   birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+#'   value = rnorm(5)
+#' )
+#' # Créer une table target dans le schéma public de la base collectr
+#' create_dummy(host = "localhost",
+#'              database = "collectr",
+#'              schema = "public",
+#'              table = "target",
+#'              pk = "id",
+#'              id_range = "1:5",
+#'              role = "runner")
 #' # Utilisation de la fonction insert_into_table()
-#' insert_into_table(database = "si_eau",
-#'                   schema = "nitrates",
-#'                   table = "nitrate_data_analyse_ars_test",
-#'                   dataframe = data_ars_2022,
-#'                   role = "admin")
+#' insert_into_table(host = "localhost",
+#'                   database = "collectr",
+#'                   schema = "public",
+#'                   table = "target",
+#'                   dataframe = source,
+#'                   role = "runner")
 #' }
-insert_into_table <- function(database, schema, table, dataframe, role) {
+insert_into_table <- function(host, database, schema, table, dataframe, role) {
   # Se connecter à la base de données PostgreSQL
-  connexion <- datalibaba::connect_to_db(db = database, 
-                                         user = role, 
+  connexion <- datalibaba::connect_to_db(server = host,
+                                         db = database,
+                                         user = role,
                                          ecoSQL = FALSE)
-  
+
   # Vérifier si la table existe dans la base de données
-  if (!table_exists(database = database, schema = schema, table = table, role = role)) {
+  if (!table_exists(host = host, database = database, schema = schema,
+                    table = table, role = role)) {
     stop("La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.")
   }
 
-  # Vérifier si les attributs correspondent 
-  if (!check_structure_table(database = database, schema = schema, 
-                             table = table, dataframe = dataframe, 
+  # Vérifier si les attributs correspondent
+  if (!check_structure_table(host = host, database = database, schema = schema,
+                             table = table, dataframe = dataframe,
                              role = role)) {
     return(FALSE)
   }
 
   # Utiliser sqlAppendTable pour préparer la requête d'insertion
   insert_query <- DBI::sqlAppendTable(connexion,
-                                    DBI::Id(schema = schema, table = table),
-                                    dataframe,
-                                    row.names = FALSE)
+                                      DBI::Id(schema = schema, table = table),
+                                      dataframe,
+                                      row.names = FALSE)
 
   # Exécuter la requête d'insertion
   result <- DBI::dbExecute(connexion, insert_query)
 
   # Se déconnecter de la base de données
   DBI::dbDisconnect(connexion)
-  
+
   # Renvoyer le nombre de lignes insérées
   return(result)
 }
diff --git a/dev/0-dev_history.Rmd b/dev/0-dev_history.Rmd
index 9309763eb6a8369ff7c574f25bdefd434e024582..fdccdc381e679628c4291c0b7caf2bb17de8b2be 100644
--- a/dev/0-dev_history.Rmd
+++ b/dev/0-dev_history.Rmd
@@ -87,6 +87,7 @@ usethis::use_r("import_and_merge_tables")
 usethis::use_r("import_geopackage")
 usethis::use_r("import_shapefile")
 usethis::use_r("import_xlsx")
+usethis::use_r("insert_into_table")
 usethis::use_r("modify_column_type")
 usethis::use_r("remove_special_chars")
 usethis::use_r("rename_field")
@@ -110,6 +111,7 @@ usethis::use_test("import_and_merge_tables")
 usethis::use_test("import_geopackage")
 usethis::use_test("import_shapefile")
 usethis::use_test("import_xlsx")
+usethis::use_test("insert_into_table")
 usethis::use_test("modify_column_type")
 usethis::use_test("remove_special_chars")
 usethis::use_test("rename_field")
diff --git a/man/create_dummy.Rd b/man/create_dummy.Rd
index 0fb84ed23786d3895f9e0eb25d303cb79b4fd0c4..c9d0d8d2fb4ddb90a559fdadbe7d7ead9460588c 100644
--- a/man/create_dummy.Rd
+++ b/man/create_dummy.Rd
@@ -36,7 +36,7 @@ create_dummy(host = "localhost",
              schema = "public",
              table = "dummy",
              pk = NULL,
-             id_range = "1:5"
+             id_range = "1:5",
              role = "runner")
 }
 }
diff --git a/man/import_and_merge_tables.Rd b/man/import_and_merge_tables.Rd
index 274bad8e5797a08cca18c463f2d981b459bcd522..36abe6c58f75e08342f0f7b772fa5c155122a412 100644
--- a/man/import_and_merge_tables.Rd
+++ b/man/import_and_merge_tables.Rd
@@ -41,14 +41,14 @@ ou l'autre des tables.
 }
 \examples{
 \dontrun{
-# Créer une table dummy dans le schéma collectr de la base production
+# Créer une table source dans le schéma public de la base collectr
 create_dummy(host = "localhost",
              database = "collectr",
              schema = "public",
              table = "source",
              pk = "id",
              role = "runner")
-# Créer une table dummy dans le schéma collectr de la base production
+# Créer une table target dans le schéma public de la base collectr
 create_dummy(host = "localhost",
              database = "collectr",
              schema = "public",
diff --git a/man/insert_into_table.Rd b/man/insert_into_table.Rd
index 1a1e7b1229af9fd862d0f8553dccc380c831f92a..9237157076b45e34201277af3970988a55bccb43 100644
--- a/man/insert_into_table.Rd
+++ b/man/insert_into_table.Rd
@@ -4,9 +4,11 @@
 \alias{insert_into_table}
 \title{Insère un dataframe dans une table existante}
 \usage{
-insert_into_table(database, schema, table, dataframe, role)
+insert_into_table(host, database, schema, table, dataframe, role)
 }
 \arguments{
+\item{host}{Hôte de la base de données PostgreSQL.}
+
 \item{database}{Nom de la base de données.}
 
 \item{schema}{Le schéma de la table dans la base de données.}
@@ -30,22 +32,27 @@ sont listées.
 }
 \examples{
 \dontrun{
-# Création d'un dataframe à partir d'un fichier XLSX
-data_ars_2022 <- collectr::import_xlsx(
-  filepath = "C:\\\\TEMP\\\\Nitrates_2022.xlsx",
-  sheet = 1,
-  row = 1)
-
-# Ajout d'un champs de géométrie
-data_ars_2022 <- data_ars_2022 |>
-  dplyr::select(-coord_x,-coord_y) |>
-  dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-
+# Créer une dataframe source
+source <- data.frame(
+  id = 6:10,
+  name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+  birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+  value = rnorm(5)
+)
+# Créer une table target dans le schéma public de la base collectr
+create_dummy(host = "localhost",
+             database = "collectr",
+             schema = "public",
+             table = "target",
+             pk = "id",
+             id_range = "1:5",
+             role = "runner")
 # Utilisation de la fonction insert_into_table()
-insert_into_table(database = "si_eau",
-                  schema = "nitrates",
-                  table = "nitrate_data_analyse_ars_test",
-                  dataframe = data_ars_2022,
-                  role = "admin")
+insert_into_table(host = "localhost",
+                  database = "collectr",
+                  schema = "public",
+                  table = "target",
+                  dataframe = source,
+                  role = "runner")
 }
 }
diff --git a/tests/testthat/test-insert_into_table.R b/tests/testthat/test-insert_into_table.R
new file mode 100644
index 0000000000000000000000000000000000000000..43f037ca92976d51f71e5372d734dffbe8dc8cff
--- /dev/null
+++ b/tests/testthat/test-insert_into_table.R
@@ -0,0 +1,47 @@
+test_that("insert_into_table works", {
+
+  Sys.setenv(user_runner="runner")
+  Sys.setenv(pwd_runner=Sys.getenv("BDD_RUNNER_PWD"))
+
+  # Création d'un dataframe fictif
+  source <- data.frame(
+    id = 6:10,
+    name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+    birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+    value = rnorm(5)
+  )
+  # Créer une table target dans le schéma public de la base collectr
+  create_dummy(host = "localhost",
+               database = "collectr",
+               schema = "public",
+               table = "target",
+               pk = "id",
+               id_range = "1:5",
+               role = "runner")
+
+  expect_equal(object = insert_into_table(host = "localhost", database = "collectr",
+                                          schema = "public", table = "target",
+                                          dataframe = source, role = "runner"),
+               expected = 5)
+
+  expect_error(object = insert_into_table(host = "localhost", database = "collectr",
+                                          schema = "public", table = "ghost",
+                                          dataframe = source, role = "runner"),
+               regexp = "La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.")
+
+  # Création d'un dataframe avec une structure différente de la table
+  df <- data.frame(id = 1:5, name = letters[1:5], value = rnorm(5))
+
+  # Créer une table target dans le schéma public de la base collectr
+  create_dummy(host = "localhost",
+               database = "collectr",
+               schema = "public",
+               table = "target",
+               pk = "id",
+               id_range = "1:5",
+               role = "runner")
+
+  expect_false(insert_into_table(host = "localhost", database = "collectr",
+                                 schema = "public", table = "target",
+                                 dataframe = df, role = "runner"))
+})
diff --git a/vignettes/write-data.Rmd b/vignettes/write-data.Rmd
index 3dc8cae0865834d9cc97be434a080b6d38f04219..bc38cf7890035344d4d112b61f29ddd7ea63abf7 100644
--- a/vignettes/write-data.Rmd
+++ b/vignettes/write-data.Rmd
@@ -59,23 +59,28 @@ archive_table(host = "localhost",
 
 ```{r examples-insert_into_table, eval=FALSE}
 #' \dontrun{
-# Création d'un dataframe à partir d'un fichier XLSX
-data_ars_2022 <- collectr::import_xlsx(
-  filepath = "C:\\TEMP\\Nitrates_2022.xlsx",
-  sheet = 1,
-  row = 1)
-
-# Ajout d'un champs de géométrie
-data_ars_2022 <- data_ars_2022 |>
-  dplyr::select(-coord_x,-coord_y) |>
-  dplyr::mutate(eligible_ades = rep(NA, dplyr::n()))
-
-# Utilisation de la fonction insert_into_table()
-insert_into_table(database = "si_eau",
-                  schema = "nitrates",
-                  table = "nitrate_data_analyse_ars_test",
-                  dataframe = data_ars_2022,
-                  role = "admin")
+# Créer une dataframe source
+ source <- data.frame(
+   id = 6:10,
+   name = c("Alice", "Bob", "Charlie", "David", "Eve"),
+   birthdate = c("1990-01-15", "1985-06-22", "1992-09-10", "1988-03-05", "1995-12-30"),
+   value = rnorm(5)
+ )
+ # Créer une table target dans le schéma public de la base collectr
+ create_dummy(host = "localhost",
+              database = "collectr",
+              schema = "public",
+              table = "target",
+              pk = "id",
+              id_range = "1:5",
+              role = "runner")
+ # Utilisation de la fonction insert_into_table()
+ insert_into_table(host = "localhost",
+                   database = "collectr",
+                   schema = "public",
+                   table = "target",
+                   dataframe = source,
+                   role = "runner")
 #' }
 ```