
Como renombrar una columna en Sqlite 3
16/11/2009Sqlite 3, al menos hasta su versión 3.6.20, no soporta el renombrado de columnas, por lo que la siguiente sentencia no es funcional:
sqlite> alter table tableName rename OldColumnName to NewName
Para cubrir esta necesidad, se volcarán los datos de la tabla con el mal nombrado de columna a otra similar pero con la columna correctamente nombrada, y posteriormente se renombrará la propia tabla. Esto que parece una tarea farragosa puede realizarse sencillamente así:
1º) Crear una copia de la tabla a tratar con el campo corregido:
sqlite> CREATE TABLE hashes_files_nueva (file varchar(256), id varchar(256), crime varchar(128));
2º) Copiar los datos de la tabla original a la nueva tabla:
sqlite> INSERT INTO hashes_files_nueva (file, id, crime)
SELECT *
FROM hashes_files;
3º) Borrar la tabla inicial:
sqlite> DROP TABLE hashes_files;
4º) Renombrar la tabla:
sqlite> ALTER TABLE hashes_files_nueva RENAME TO hashes_files;
Opcionalmente, como Sqlite por defecto no libera el espacio en disco de una tabla borrada, se puede forzar su liberación:
sqlite> vacuum;
Si se desea hacer con interfaz gráfica, se puede probar Sqlitebrowser ó Firefox Sqlite Manager Plugin.
Fuentes: StackOverFlow, Grass.orgeo.org
Muy buena esta información colega, sin embargo tengo ese pequeño inconveniente con el DROP TABLE, comentas que se usa «vacuum;» , ammm pero como expreso esa sentencia en JAVA, estoy utilizando SQLite como el motor de BD pero no comprendo.
I’m so glad that the ineerntt allows free info like this!