Come clonare una tabella in spatialite CloneTable()

Chi utilizza spatialite avrà avuto, almeno una volta nella vita, la necessità di clonare una tabella cioè di semplificare la copia dei dati tra diverse tabelle dello stesso DB o addirittura di DB esterni. CloneTable() fa al caso nostro, questa nuova feature è stata introdotta a partire dalla versione 4.2.1 di spatialite grazie a A. Furieri. (per maggiori dettagli leggete qui).

In questo articolo vedremo, rapidamente, come clonare una tabella di un DB spatilite:

SELECT CloneTable ('main', 'tabellaInput', 'tabellaOutput', 1);

dove:

  • main: rappresenta il DB principale, cioè quello in cui stiamo lavorando (va lasciato cosi se la tabella da clonare si trova nel DB principale);
  • tabellaInput: rappresenta il nome della tabella da copiare (che potrebbe essere in un altro DB);
  • tabellaOutput: rappresenta il nome della tabella di destinazione (che deve stare sempre nel DB principale);
  • 1: cose tecniche che non ci interessano.

CloneTable() supporta numerose opzioni che lo rendono parecchio potente (per maggiori dettagli leggere qui), noi vedremo solo ::append:: che permette di accodare altre righe:

SELECT CloneTable('main','tabellaInput','tabellaOutput',1,'::append::');

 


Note finali: CloneTable() puo’ essere usato anche per clonare tabelle vuote oppure per aggirare il problema del ALTER TABLE DROP COLUMN.

SELECT CloneTable ('main','old_table','new_table', 1,':: ignore :: foo'); 
DROP TABLE old_table;

 

Buon lavoro!!!

 

Annunci

Un pensiero su “Come clonare una tabella in spatialite CloneTable()

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...