37 - Restricción primary key |
Una empresa tiene registrados datos de sus empleados en una tabla llamada "empleados". 1- Créela con la siguiente estructura: create table empleados ( documento varchar(8) not null, nombre varchar(30), seccion varchar(20) ); 2- Ingrese algunos registros, dos de ellos con el mismo número de documento: insert into empleados values ('22222222','Alberto Lopez','Sistemas'); insert into empleados values ('23333333','Beatriz Garcia','Administracion'); insert into empleados values ('23333333','Carlos Fuentes','Administracion'); 3- 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. 4- Establezca la restricción "primary key" del punto 3 5- Intente actualizar un documento para que se repita. No lo permite porque va contra la restricción. 6-Intente establecer otra restricción "primary key" con el campo "nombre". No lo permite, sólo puede haber una restricción "primary key" por tabla. 7- Intente ingresar un registro con valor nulo para el documento. No lo permite porque la restricción no admite valores nulos. 8- Vea las restricciones de la tabla empleados (2 filas)Ver solución
drop table if exists empleados; create table empleados ( documento varchar(8) not null, nombre varchar(30), seccion varchar(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); insert into empleados values(null,'Marcelo Juarez','Sistemas'); select * from empleados; select * from information_schema.table_constraints where table_name = 'empleados';
Una empresa de remises tiene registrada la información de sus vehículos en una tabla llamada "remis". 1- Cree la tabla con la siguiente estructura: create table remis( numero serial, patente char(6), marca varchar(15), modelo char(4) ); 2- Ingrese algunos registros sin repetir patente: insert into remis (patente,marca,modelo)values('ABC123','Renault 12','1990'); insert into remis (patente,marca,modelo)values('DEF456','Fiat Duna','1995'); 3- Definir una restricción "primary key" para el campo "patente". 4- Establezca una restricción "primary key" para el campo "numero". (No lo permite ya que hay una "primary key") 5- Vea la información de las restricciones
drop table if exists remis; create table remis( numero serial, patente char(6), marca varchar(15), modelo char(4) ); insert into remis (patente,marca,modelo)values('ABC123','Renault 12','1990'); insert into remis (patente,marca,modelo)values('DEF456','Fiat Duna','1995'); alter table remis add constraint PK_remis_patente primary key(patente); alter table remis add constraint PK_remis_numero primary key(numero); select * from information_schema.table_constraints where table_name = 'remis';