| 43 - Restricciones: eliminación (alter table - drop constraint) | 
Una playa de estacionamiento almacena cada día los datos de los vehículos que ingresan en la tabla llamada "vehiculos".
1- Setee el formato de "date" para que nos muestre hora y minutos:
ALTER SESSION SET NLS_DATE_FORMAT = 'HH24:MI';
2- Elimine la tabla y créela con la siguiente estructura:
drop table vehiculos; create table vehiculos( patente char(6) not null, tipo char(1),--'a'=auto, 'm'=moto horallegada date not null, horasalida date );
3- Establezca una restricción "check" que admita solamente los valores "a" y "m" para el campo "tipo":
 alter table vehiculos
 add constraint CK_vehiculos_tipo
 check (tipo in ('a','m'));
4- Agregue una restricción "primary key" que incluya los campos "patente" y "horallegada"
5- Ingrese un vehículo.
6- Intente ingresar un registro repitiendo la clave primaria.
7- Ingrese un registro repitiendo la patente pero no la hora de llegada.
8- Ingrese un registro repitiendo la hora de llegada pero no la patente.
9- Vea todas las restricciones para la tabla "vehiculos"
aparecen 4 filas, 3 correspondientes a restricciones "check" y 1 a "primary key". Dos de las restricciones de control tienen nombres dados por Oracle.
12- Elimine la restricción "primary key"
13- Vea si se ha eliminado.
Ahora aparecen 3 restricciones.
14- Elimine la restricción de control que establece que el campo "patente" no sea nulo (busque el nombre consultando "user_constraints").
15- Vea si se han eliminado.
16- Vuelva a establecer la restricción "primary key" eliminada.
17- La playa quiere incluir, para el campo "tipo", además de los valores permitidos "a" (auto) y "m" (moto), el caracter "c" (camión). No puede modificar la restricción, debe eliminarla y luego redefinirla con los 3 valores.
18- Consulte "user_constraints" para ver si la condición de chequeo de la restricción "CK_vehiculos_tipo" se ha modificado.
Ver solución
 ALTER SESSION SET NLS_DATE_FORMAT = 'HH24:MI';
 drop table vehiculos;
 create table vehiculos(
  patente char(6) not null,
  tipo char(1),--'a'=auto, 'm'=moto
  horallegada date not null,
  horasalida date
 );
 alter table vehiculos
 add constraint CK_vehiculos_tipo
 check (tipo in ('a','m'));
 alter table vehiculos
 add constraint PK_vehiculos
 primary key(patente,horallegada);
 insert into vehiculos values('SDR456','a','10:10',null);
 insert into vehiculos values('SDR456','m','10:10',null);
 insert into vehiculos values('SDR456','m','12:20',null);
 insert into vehiculos values('SDR111','m','10:10',null);
 select constraint_name, constraint_type, search_condition from user_constraints
  where table_name='VEHICULOS';
  alter table vehiculos
  drop constraint PK_vehiculos;
 select constraint_name, constraint_type, search_condition from user_constraints
  where table_name='VEHICULOS';
 select constraint_name, constraint_type, search_condition from user_constraints
  where table_name='VEHICULOS';
 alter table vehiculos
 add constraint PK_vehiculos
 primary key(patente,horallegada);
 alter table vehiculos
  drop constraint CK_vehiculos_tipo;
 alter table vehiculos
 add constraint CK_vehiculos_tipo
 check (tipo in ('a','m','c'));
 select search_condition from user_constraints
  where table_name='VEHICULOS' and
  constraint_name='CK_VEHICULOS_TIPO';