¿Cómo agrego una columna en una tabla de base de datos SQLite 2
-
11-09-2019 - |
Pregunta
¿Cómo puedo añadir una columna adicional a una tabla de base de datos SQLite 2 existente que tiene datos e índices asociados a ella.
Parece que la modificación de tabla de SQL para la que no está disponible en sqlite2?
Solución
Desde el SQLite FAQ :
SQLite ha limitado el apoyo ALTER TABLE que se puede utilizar para agregar una columna al final de una mesa o para cambiar el nombre de una tabla. Si desea realizar cambios más complejos en la estructura de una tabla, tendrá que volver a crear la tabla. Puede guardar los datos existentes en una tabla temporal, eliminar la tabla de edad, crear la nueva tabla, a continuación, copiar los datos de nuevo a partir de la tabla temporal.
Por ejemplo, suponga que tiene una tabla llamada "t1" con los nombres de las columnas "a", "b" y "c" y que desea eliminar la columna "c" de esta tabla. Los pasos siguientes ilustran cómo esto se podría hacer:
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;
Otros consejos
Puede que no sea - sqlite3 ha estado fuera por un tiempo. Vas a tener que crear otra base de datos con la tabla de la forma que desee y copiar los datos en él. O bien, crear una nueva tabla, copiar los datos, deje caer el ejemplar y sustituirlo por uno nuevo.
No se olvide que en el cuadro gota gotas también asociado desencadenantes.
Antes de que se va a modificar la tabla utilice el comando
.scheme TABLE_TO_MODIFY
que volcar todos los estados actuales, que serán descartados incluyendo los factores desencadenantes que usted necesita para volver a crear.
Saludos,
Elixon
No puedes. No se admite la modificación no trivial de tablas. Lo que tendría que hacer es:
- copiar los datos en una tabla temporal caer el viejo
- crear la nueva tabla
- Copiar datos de la tabla original a la misma
- Crea la nueva tabla
- Copie los datos de temperatura en la nueva tabla