48 - Remplazar registros (replace)


Problema:
 Un instituto de enseñanza guarda los datos de sus alumnos en la tabla "alumnos".

1- Elimine la tabla si existe:
 drop table if exists alumnos;

2- Cree la tabla:
 create table alumnos(
  legajo int(10) unsigned auto_increment,
  nombre varchar(30),
  documento char(8),
  domicilio varchar(30),
  primary key(legajo),
  unique i_documento (documento)
 );

3- Ingrese algunos registros:
 insert into alumnos values('1353','Juan Lopez','22333444','Colon 123');
 insert into alumnos values('2345','Ana Acosta','24000555','Caseros 456');
 insert into alumnos values('2356','Jose Torres','26888777','Sucre 312');
 insert into alumnos values('3567','Luis Perez','28020020','Rivadavia 234');

4- Intente ingresar un registro con clave primaria repetida (legajo "3567"):
 insert into alumnos values('3567','Marcos Pereyra','30000333','Guemes 134');
aparece un mensaje de error.

5- Ingrese el registro anterior reemplazando el existente:
 replace into alumnos values('3567','Marcos Pereyra','30000333','Guemes 134');

6- Intente ingresar un alumno con documento repetido:
 insert into alumnos values('4567','Susana Juarez','30000333','Avellaneda 33');
aparece un mensaje de error.

7- Reemplace el registro:
 replace into alumnos values('4567','Susana Juarez','30000333','Avellaneda 33');
note que el alumno con documento "30000333" se eliminó y se reemplazó por el nuevo registro.

8- Elimine el índice único:
 drop index i_documento on alumnos;

9- Ingrese con "replace" el siguiente registro con documento existente:
 replace into alumnos values('4888','Gustavo Garcia','30000333','San Martin 846');
un registro afectado, no hubo eliminación solamente inserción.

10- Muestre todos los registros:
 select * from alumnos;
note que hay dos alumnos con el mismo número de documento.



 


Retornar