38 - Restricción primary key |
Una empresa tiene registrados datos de sus empleados en una tabla llamada "empleados".
1- Elimine la tabla:
drop table empleados;
2- Créela con la siguiente estructura:
create table empleados ( documento char(8), nombre varchar2(30), seccion varchar2(20) );
3- Ingrese algunos registros, dos de ellos con el mismo número de documento:
4- Intente establecer una restricción "primary key" para la tabla para que el documento no se repita ni admita valores nulos.
No lo permite porque la tabla contiene datos que no cumplen con la restricción, debemos eliminar (o modificar) el registro que tiene documento duplicado.
5- Establecezca la restricción "primary key" del punto 4
6- Intente actualizar un documento para que se repita.
No lo permite porque va contra la restricción.
7-Intente establecer otra restricción "primary key" con el campo "nombre".
8- Vea las restricciones de la tabla "empleados" consultando el catálogo "user_constraints" (1 restricción "P")
9- Consulte el catálogo "user_cons_columns"
Ver solucióndrop table empleados; create table empleados ( documento char(8), nombre varchar2(30), seccion varchar2(20) ); insert into empleados values ('22222222','Alberto Lopez','Sistemas'); insert into empleados values ('23333333','Beatriz Garcia','Administracion'); insert into empleados values ('23333333','Carlos Fuentes','Administracion'); alter table empleados add constraint PK_empleados_documento primary key(documento); delete from empleados where nombre='Carlos Fuentes'; alter table empleados add constraint PK_empleados_documento primary key(documento); update empleados set documento='22222222' where documento='23333333'; alter table empleados add constraint PK_empleados_nombre primary key(nombre); select *from user_constraints where table_name='EMPLEADOS'; select *from user_cons_columns where table_name='EMPLEADOS';
Una empresa de remises tiene registrada la información de sus vehículos en una tabla llamada "remis".
1- Elimine la tabla:
drop table remis;
2- Cree la tabla con la siguiente estructura:
create table remis( numero number(5), patente char(6), marca varchar2(15), modelo char(4) );
3- Ingrese algunos registros sin repetir patente y repitiendo número.
4- Ingrese un registro con patente nula.
5- Intente definir una restricción "primary key" para el campo "numero".
6- Intente establecer una restricción "primary key" para el campo "patente".
7- Modifique el valor "null" de la patente.
8- Establezca una restricción "primary key" del punto 6.
9- Vea la información de las restricciones consultando "user_constraints" (1 restricción "P")
10- Consulte el catálogo "user_cons_columns" y analice la información retornada (1 restricción)
drop table remis; create table remis( numero number(5), patente char(6), marca varchar2(15), modelo char(4) ); insert into remis values(1,'ABC123','Renault 12','1990'); insert into remis values(1,'DEF456','Fiat Duna','1995'); insert into remis values(2,null,'Renault Clio','1990'); alter table remis add constraint PK_remis_numero primary key(numero); alter table remis add constraint PK_remis_patente primary key(patente); update remis set patente='AIC222' where patente is null; alter table remis add constraint PK_remis_patente primary key(patente); select *from user_constraints where table_name='REMIS'; select *from user_cons_columns where table_name='REMIS';