Spanish Añadir columna a una tabla

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

¿Me podríais ayudar por favor?
Resulta que tengo una tabla dentro de una base de datos. En ella tengo valores de configuración y constantes almacenadas en campos distintos. Por ejemplo... tipousuario,horasanuales,colordefondo... etc... Ahora me encuentro en la necesidad de añadir un nuevo campo que cuando creé la tabla no lo necesitaba.

¿Se puede hacer? He visto que existe la opción ADD COLUMN para tablas sqlite pero entiendo que si usas este comando en versiones sqlite 3.1 o inferiores la base de datos no funciona.

¿Sería mejor si fuera posible renombrar la vieja tabla y crear copiar una nueva importando los datos?

El tema de la actualización de las tablas y base de datos me lleva de cabeza y es que no acabo de comprender como puedo hacer nuevas versiones de programa en la que igual necesito añadir campos a una tabla / sustituir tabla pero conservando los datos viejos.

Saludos
Espinosa
 

Espinosa4

Active Member
Licensed User
Longtime User
Deberia funcionar

"ALTER TABLE latabla ADD COLUMN lacolumna VARCHAR(100)"

Saludos

Gracias una vez más vampirbcn!!

Desde un principio mi programa instala en el móvil una base de datos con sus correspondientes tablas. Hay tablas que no se tocan porque son datos fichos pero hay otras tablas en la que los usuarios van poniendo datos. El problema que planteo es que si actualizo la base de datos en el móvil porque he creado una tabla o he añadido un campo a otra si hago lo de "si existe hacer" no borra entonces tengo que hacer "Borrar archivo y luego copiar la nueva bd" perdiendo los datos almacenados en el móvil. Me podrías explicar si eres tan amable la forma correcta de proceder. Yo pensaba que las tablas irían sueltas y no dentro del mismo fichero de la base de datos. Si hubiera sido así, simplemente añadiendo la columna o copiando la nueva tabla todo estaría arreglado pero al copiarse todo de nuevo pierdo todos los datos.

Recibe un cordial saludo
Espinosa
 

vampirbcn

Active Member
Licensed User
Longtime User
Debes cambiar el planteamiento, bajo ningún concepto debes sustituir la base de datos por otra.

Imaginemos que actualizas la app y necesitas añadir una tabla a la base de datos, debes hacerlo en tiempo de ejecución con sentencias SQL, lo mismo si debes añadir un campo a una tabla. No puedes sustituir la base de datos por otra, ya que esto comporta la perdida de información.

básicamente deberás utilizar

CREATE TABLE para crear nuevas tablas
ALTER TABLE para añadir nuevos campos

Un abrazo!!
 

Espinosa4

Active Member
Licensed User
Longtime User
Debes cambiar el planteamiento, bajo ningún concepto debes sustituir la base de datos por otra.

Imaginemos que actualizas la app y necesitas añadir una tabla a la base de datos, debes hacerlo en tiempo de ejecución con sentencias SQL, lo mismo si debes añadir un campo a una tabla. No puedes sustituir la base de datos por otra, ya que esto comporta la perdida de información.

básicamente deberás utilizar

CREATE TABLE para crear nuevas tablas
ALTER TABLE para añadir nuevos campos

Un abrazo!!

Ahhhh gracias vampirbcn!!! Esto es lo que necesitaba oir!!!
Entendía más o menos algunos conceptos pero la regla de oro y que es más que lógica no la entendía.

Un millón de gracias!!
Un abrazo!!
 
Top