Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/06/2008, 03:55
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Cambiar clave primaria por una secuencia

Hola,

Esta semana estoy anti-cursores, no es que sean malos o que no cumplan con su trabajo, es solo que se utilizan en exceso y son mucho mas lentos.

Código:
oracle@10G> create sequence s1 start with 1 increment by 1;

Secuencia creada.

oracle@10G> select * from t1;

        ID DATA
---------- ----------
           data1
           data2
           data3
           data4
           data5
           data6

6 filas seleccionadas.

oracle@10G> update t1 set id = s1.nextval;

6 filas actualizadas.

oracle@10G> select * from t1;

        ID DATA
---------- ----------
         1 data1
         2 data2
         3 data3
         4 data4
         5 data5
         6 data6

6 filas seleccionadas.
Despues tienes que actualizar las tablas hijas pasando el valor de la nueva PK y haciendo un JOIN con la antigua PK.

Saludos