Borrar un registro de una base de datos en Oracle

publicado por: Anonymous

Disculpen si la pregunta es tonta; pero soy nueva en base de datos y quisiera saber si me pueden apoyar, por favor. Mi duda es que tengo una base de datos en Oracle llamada (Empresa) con tablas no relacionales, en ellas manejo folios de personas y tengo distintas tablas como: datos_generales, ocupacion, salud, estudios, etc. Cada que me piden borrar un registro lo hago así:

DELETE FROM ocupacion WHERE folio=542;

Pero, ¿me gustaría saber sí es posible borrar el registro de todas las tablas de la base de datos en una sola consulta? En total tengo 40 tablas.

solución

Todo depende de como te hayan creado tu base de datos o tu modelo de entidad relacion, me explico: Si esta relacionada o tienes constraints la cuestion se hace mas civilizada.

Si te crearon los constraint asi:

alter table sample1 
   add foreign key (col1) 
references 
   sample (col2)
on delete cascade;

Si no lo tienes relacionad, el proceso tienes que hacer manualmente. Yo te recomiendo hacer un procedimiento y meter todas las tablas alli que deseas borrar de esta manera al momento de ejecutar el procedimiento borras todo de un solo golpe (como se dice coloquialmente en mi pais) esto puede ser un ejemplo sencillo:

create or replace procedure borrado_folio (p_folio IN varchar2)
is
Begin
delete from empresa.datos_generales where folio=p_folio;
delete from empresa.ocupacion where folio=p_folio;
delete from empresa.estudioswhere folio=p_folio;
//todas los datos de las tablas que vayas a borrar
end;
/

De esta forma creo, a mi parecer, te repito si no la tienes relacionada seria la mejor manera a mi parecer y te quitas eso de la borradera.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *