39 - Restricción unique |
Trabajamos con la tabla "alumnos".
Eliminamos la tabla:
drop table alumnos;
Creamos la tabla:
create table alumnos( legajo char(4), apellido varchar2(20), nombre varchar2(20), documento char(8) );
Agregamos una restricción "primary" para el campo "legajo":
alter table alumnos add constraint PK_alumnos_legajo primary key(legajo);
Agregamos una restricción "unique" para el campo "documento":
alter table alumnos add constraint UQ_alumnos_documento unique (documento);
Ingresamos algunos registros:
insert into alumnos values('A111','Lopez','Ana','22222222');
insert into alumnos values('A123','Garcia','Maria','23333333');
Intentamos ingresar un documento repetido:
insert into alumnos values('A230','Perez','Juan','23333333');
aparece un mensaje de error indicando que se viola la restricción única.
Intentamos ingresar un legajo repetido:
insert into alumnos values('A123','Suarez','Silvana','30111222');
aparece un mensaje de error indicando que se viola la restricción "primary key".
Veamos las restricciones de la tabla "alumnos" consultando el catálogo "user_constraints":
select *from user_constraints where table_name='ALUMNOS';
Aparecen las dos restricciones creadas anteriormente:
OWNER CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME -------------------------------------------------------------------------- SYSTEM PK_ALUMNOS_LEGAJO P ALUMNOS SYSTEM UQ_ALUMNOS_DOCUMENTO U ALUMNOS
Veamos la información de "user_cons_columns":
select *from user_cons_columns where table_name='ALUMNOS';
Nos informa:
OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME POSITION -------------------------------------------------------------------------------- SYSTEM UQ_ALUMNOS_DOCUMENTO ALUMNOS DOCUMENTO 1 SYSTEM PK_ALUMNOS_LEGAJO ALUMNOS LEGAJO 1
drop table alumnos;
create table alumnos(
legajo char(4),
apellido varchar2(20),
nombre varchar2(20),
documento char(8)
);
alter table alumnos
add constraint PK_alumnos_legajo
primary key(legajo);
alter table alumnos
add constraint UQ_alumnos_documento
unique (documento);
insert into alumnos values('A111','Lopez','Ana','22222222');
insert into alumnos values('A123','Garcia','Maria','23333333');
insert into alumnos values('A230','Perez','Juan','23333333');
insert into alumnos values('A123','Suarez','Silvana','30111222');
select *from user_constraints where table_name='ALUMNOS';
select *from user_cons_columns where table_name='ALUMNOS';