Listado completo de tutoriales

60 - Restricciones foreign key (eliminación)


Podemos eliminar una restricción "foreign key" con "alter table". La sintaxis básica es la misma que para cualquier otra restricción:

 alter table TABLA
  drop constraint NOMBRERESTRICCION;

Eliminamos la restricción "foreign key" de "libros":

 alter table libros
  drop constraint FK_libros_codigoeditorial;

No se puede eliminar una tabla si una restricción "foreign key" hace referencia a ella.

Cuando eliminamos una tabla que tiene una restricción "foreign key", la restricción también se elimina.

Ingresemos el siguiente lote de comandos en el Oracle SQL Developer:

 drop table libros;
 drop table editoriales;

 create table libros(
  codigo number(5),
  titulo varchar2(40),
  autor varchar2(30),
  codigoeditorial number(3)
 );
 create table editoriales(
  codigo number(3),
  nombre varchar2(20)
);

 insert into editoriales values(1,'Emece');
 insert into editoriales values(2,'Planeta');
 insert into editoriales values(3,'Siglo XXI');

 insert into libros values(100,'El aleph','Borges',1);
 insert into libros values(101,'Martin Fierro','Jose Hernandez',2);

 alter table editoriales
 add constraint PK_editoriales
  primary key (codigo);

 alter table libros
 add constraint FK_libros_codigoeditorial
  foreign key (codigoeditorial)
  references editoriales(codigo);

 select constraint_name, constraint_type
  from user_constraints
  where table_name='LIBROS';
 
 -- Eliminamos la restricción "foreign key" de "libros": 
 alter table libros
  drop constraint FK_libros_codigoeditorial;

 -- No existe ahora la restricción FK_libros_codigoeditorial
 select constraint_name, constraint_type
  from user_constraints
  where table_name='LIBROS';

Retornar