Come faccio ad aggiungere una colonna in una tabella 2 database SQLite
-
11-09-2019 - |
Domanda
Come faccio ad aggiungere una colonna aggiuntiva a una tabella di database SQLite 2 esistente che dispone di dati e gli indici ad esso associati.
Sembra che la tabella SQL alter per questo non è disponibile in sqlite2?
Soluzione
SQLite ha un supporto limitato ALTER TABLE che è possibile utilizzare per aggiungere una colonna alla fine di una tabella o per cambiare il nome di una tabella. Se si desidera apportare modifiche più complesse nella struttura di una tabella, si dovrà ricreare la tabella. È possibile salvare i dati esistenti in una tabella temporanea, eliminare la vecchia tabella, creare la nuova tabella, quindi copiare i dati indietro nel dalla tabella temporanea.
Ad esempio, si supponga di avere una tabella denominata "T1" con i nomi delle colonne "a", "b" e "c" e che si desidera eliminare colonna "c" da questa tabella. I passaggi seguenti illustrano come questo potrebbe essere fatto:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
Altri suggerimenti
Potrebbe non essere - sqlite3 è stato fuori per un po '. Dovrete creare un altro DB con la tabella nel modo desiderato e copiare i dati su di esso. In alternativa, creare una nuova tabella, copiare i dati, eliminare l'originale e sostituirlo con quello nuovo.
Non dimenticate che TABELLA gocce goccia anche associato trigger.
Prima che si sta per modificare la tabella utilizzare il comando
.scheme TABLE_TO_MODIFY
che il dump tutte le dichiarazioni attuali che verranno eliminati compresi i trigger che è necessario ricreare.
Saluti,
Elixon
Non lo sai. Non banale modifica delle tabelle non è supportato. Che cosa si avrebbe bisogno di fare è:
- copiare i dati in una tabella temporanea cadere il vecchio
- creare la nuova tabella
- Copia dei dati dalla tabella originale ad esso
- Creare la nuova tabella
- Copiare i dati dal temporanea nella nuova tabella