Append tra due database SQLite tramite script

Come aggiungere dati a tabelle di due database sqlite differenti usando uno script.

A cura di Totò Fiandaca  | guida/e Andrea Borruso


caso d’uso

Appendere dati da una tabella a un’altra è una operazione ripetitiva che si risolve, brillantemente, attraverso lo scripting usando, per esempio, la libreria GDAL/OGR o script SQL. Questa procedura facilita enormemente il lavoro di gruppo su uno stesso database SQLite (db_main.sqlite) distribuito a più persone (per esempio db01.sqlite): permettendo di appendere i dati nel db originario dopo una sessione di lavoro.

script bash

#!/bin/bash

ogr2ogr -update -append -f SQLite db_main.sqlite -nln "nomeTabellaDestinazione" db01.sqlite "nomeTabellaOrigine"

script SQL

--
-- the present SQL script is intended to be executed from SpatiaLite_gui
--
-- initializing the output db-file
--
SELECT InitSpatialMetadata(1);

--
-- attaching the input DB-file

ATTACH DATABASE 'percorso_al_db/db01.sqlite' AS input;
SELECT CloneTable('input', 'nomeTabellaOrigine', 'nomeTabellaDestinazione', 1, '::append::'); -- appendo seconda tabella

-- detaching the input db-file
--
DETACH DATABASE input;

--
-- vacuuming the output db-file
--
VACUUM;

come e dove usare gli script

  • lo script bash va lanciato da un terminale, a partire dalla cartella che contiene i db;
  • lo script SQL va eseguito all’interno di spatialite_gui (Execute SQL script, dal menu).
Ultima modifica 19/07/2020: close #50 (a1365d8)