h1

Como renombrar una columna en Sqlite 3

16/11/2009

Sqlite 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

2 comentarios

  1. 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.


  2. I’m so glad that the ineerntt allows free info like this!



Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: