Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2008, 05:29
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Re: Camiar contenido de clave primaria

Hola,

Tienes que deshabilitar las foreign keys para poder modificar el campo que corresponde a la primary key.

Código:
SQL> create table t1 (id number);

Tabla creada.

SQL> alter table t1 add constraint pk_t1_id primary key(id);

Tabla modificada.

SQL> create table t2 (id number);

Tabla creada.

SQL> alter table t2 add constraint fk_t2_id foreign key (id) references t1(id) ;

Tabla modificada.

SQL> insert into t1 values (1);

1 fila creada.

SQL> insert into t1 values (2);

1 fila creada.

SQL> insert into t1 values (3);

1 fila creada.

SQL> insert into t2 values (1);

1 fila creada.

SQL> insert into t2 values (2);

1 fila creada.

SQL> insert into t2 values (3);

1 fila creada.

SQL> alter table t2 disable constraint fk_t2_id;

Tabla modificada.

SQL> update t1 set id = id + 5;

3 filas actualizadas.

SQL> update t2 set id = id + 5;

3 filas actualizadas.

SQL> alter table t2 enable validate constraint fk_t2_id;

Tabla modificada.
Recuerda utilizar la opcion validate cuando habilites nuevamente la foreign key, esto es para que valide que la relacion se mantiene.

Saludos