Ver Mensaje Individual
  #1  
Antiguo 11-06-2010
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Reputación: 21
Vlady Va por buen camino
Reordenar consecutivo

Hola amigos del club delphi dento el siguiente problemilla quiero q en el momento de eliminar un registro de una tabla se reordene la llave primaria que es un campo incremental es decir por ejemplo tengo lo siguientes registros:

Código:
       id     nombres     apellidos
      334     LUIS           PEREZ
      335     CAMILO       MEDINA
      336     ARMANDO    BUITRAGO
      337     OMAR          RODIGUEZ
En el momento en que se elimine el registro 335 el campo ID que es PK de la tabla debe disminuir en 1. Quedando de esta forma
Código:
       id     nombres     apellidos
      334     LUIS           PEREZ
      335     ARMANDO    BUITRAGO
      336     OMAR          RODIGUEZ
Alguna sugerencia para este problemilla. Una forma que he pensado es esta:

Código SQL [-]
      WHILE (PRIMERO <= :ULTIMO) DO
      BEGIN
          UPDATE CLIENTE SET ID = :PRIMERO WHERE ID =   :PRIMERO + 1;
         PRIMERO = :PRIMERO + 1;
     END
donde PRIMERO es el registro que estoy borrando y ULTIMO es el ultimo registro de la tabla, el problema con este codigo es que no me permite borrar barrios registros a la vez. Espero que me puedan ayudar. Se me olvidaba trabajo con firebird 2.0 y DELPHI 7.
Responder Con Cita