Update Table con WHERE RowNun - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html) +--- Tema: Update Table con WHERE RowNun (/thread-136.html) |
Update Table con WHERE RowNun - gambafeliz - 12-10-2020 Hola Estoy derrotado. Acabo tirar la toalla y no se si cortarme las venas o dejarmelas largas. Ayuda po favor. Bueno después de mi gran derrota pido a un semi-Dios que me ayude. Os describo el problema: Tengo: El campo RowNum SELECT ROW_NUMBER() OVER (ORDER BY Descripción ASC) RowNum, * FROM Inmovilizado GROUP BY Descripción ORDER BY Descripción ASC; Base de datos SQLite3 Tabla: Inmovilizado Acción: Update (Este es mi problema a solucionar) Where: Pretendo buscar el registro en la tabla Inmovilizado que tengo ROW_NUMBER() = RowNum Pero, ¿Como? Esto es algo parecido que funciona pero me funciona para buscar, osea, en un SELECT: Select * From (Select ROW_NUMBER() OVER (ORDER BY Descripción ASC) RowNum, Estado, FechaEstado From Inmovilizado) t WHERE RowNum = 1; En fin, me ayuda. Gracias y suerte que es muy necesaria para el valiente que lo haga. RE: Update Table con WHERE RowNun - omoreno - 13-10-2020 Hola gambafeliz. Si te refieres a poder actualizar un registro de la tabla utilizando fila de la tabla, prueba con esto: Código: UPDATE inmovilizado SET descripcion='ABC' WHERE rowid=3 Saludos. RE: Update Table con WHERE RowNun - gambafeliz - 13-10-2020 Gracias omoreno Efectivamente ayer lo resolví así como tu propones, poco después de poner la pregunta. Pero no lo puse como resuelto la pregunta, por que como el hilo pide una solución determinada y no tu propuesta, pues, lo dejé para saber la solución a la propuesta en el hilo. Saludos, joven RE: Update Table con WHERE RowNun - calcena - 11-11-2020 Buenas yo así lo que veo es que el row_number() o rowid se genera en memoria de la propia transacionalidad, por tanto mi opinión, o lo que yo implementaría sería realizar el ordenamiento y hacer un select del row_number() para obtener tu Id de tabla y posteriormente updatear sobre ese ID la tabla. Yo, primero no le veo diferencia a querer hacerlo con el row_number() que tampoco se si se podrá, pero se pueda o no, veo factible la obtención-actualización en dos pasos. Si hablasemos de SGBD más completos te diría de montar un SP o un Package para que esa misma funcionalidad se implementase y entonces tú llamando desde tu backend obtendrías el resultado directamente de la trasacción final row_affected. Al tratarse de una DB que se ejecuta con las particularidades que tiene, bloqueo para concurrencia, no SP, no TRG ...etc ..pues tenemos que apañarnos con lo que hay. Saludos. |