Ver la Versión Completa : [ CONSULTA ] Renombrar tabla en SQlite
kaiser75
22/09/16, 11:23:36
Hay manera de renombrar una tabla de SQlite sin perder los datos que tiene dentro?
mocelet
22/09/16, 13:41:56
ALTER TABLE antiguo RENAME TO nuevo
O eso dicen en SO:
http://stackoverflow.com/questions/426495/how-do-you-rename-a-table-in-sqlite-3-0
kriogeN
22/09/16, 14:17:08
No lo he probado, pero lo que dice mocelet debe funcionar.
Tendrás que incrementar la versión de tu base de datos, y en el onUpgrade del SQLiteOpenHelper ejecutar ese comando.
Dexafree
22/09/16, 15:12:25
y en el onUpgrade del SQLiteOpenHelper ejecutar ese comando.
Comprobando la oldVersion y la newVersion para que no se ejecute las próximas veces que actualices la app y requiera un cambio en base de datos :ok:
(Es el método en el que el switch cascading tiene todo el sentido del mundo)
switch(oldVersion){
case 1:
transicionV1aV2(db);
case 2:
transicionV2aV3(db);
case 3:
transicionV3aV4(db);
}
mocelet
22/09/16, 16:23:47
Es el método en el que el switch cascading tiene todo el sentido del mundo
¡Desde luego! Y debe ser prácticamente el único caso, en Swift y Kotlin entre otros lenguajes han fulminado esa característica.
Dexafree
22/09/16, 17:54:25
Y debe ser prácticamente el único caso
En mi caso solo lo he utilizado en compiladores y en tema de upgrade de versiones xD
en Swift y Kotlin entre otros lenguajes han fulminado esa característica.
Al menos en el caso de swift, tienes el operador fallthrough, donde tu defines especificamente los casos que hacen cascading
switch(valor) {
case 1:
cosa()
fallthrough
case 2:
cosa2()
default:
cosa3()
}
kaiser75
22/09/16, 18:56:57
Gracias compañeros :ok: por orientarme, y cada vez que renombras una tabla hay que incrementar la version de la BD?
mocelet
22/09/16, 19:48:16
Gracias compañeros :ok: por orientarme, y cada vez que renombras una tabla hay que incrementar la version de la BD?
No necesariamente, pero raro sería que no. El incrementar la versión de la BD es para que al instalar una nueva versión de la app sepas que la base de datos que hay tiene la estructura antigua y puedas hacer los cambios necesarios. Idem si el usuario por lo que sea recuperó un backup antiguo de los datos.
Tienes que tener en cuenta que los usuarios de la app han podido crear la base de datos con una versión anterior, no siempre va a ser nueva.
Dicho esto, solo se me ocurren dos casos raros en que no tengas que incrementar la versión y quieras cambiar el nombre de una tabla:
a) Que en algún sitio de la base de datos tengas guardado el nombre nuevo que le has puesto a la tabla. En ese caso da igual la versión porque el nombre realmente lo sacas de la propia base de datos. No te encontrarías con que versiones antiguas de la app esperan que la tabla se llame "pepe" y las nuevas "jose".
b) Que estés haciendo un editor de SQLite xD
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.