PROBLEMA TRIGGERS ORACLE SQL

Iniciado por rixi15, 20 Mayo 2012, 20:58 PM

0 Miembros y 1 Visitante están viendo este tema.

rixi15

Hola, tengo un problema y es como crear un trigger que compruebe si existe una tupla (id1,id2) en otra tabla, para asi evitar que se inserte esa tupla en la tabla donde pongo el trigger. He buscado pero no he encontrado nada. Muchas gracias.

Saberuneko

#1
No te voy a hacer los deberes, pero sí te daré una orientación inicial.

Necesitas un TRIGGER del tipo "BEFORE insert on TABLA"

create or replace trigger <nombre>
before insert on <tabla>
for each row


Dentro del mismo deberás poner una consulta que compruebe si existe dicha tupla.
Ya sea porque se duplica la clave, o algún campo adicional junto a la misma.

if new.<campo1> = <consulta1> and [...] and new.<campon> = <consultan> then

Si existe, haz un RAISE_APPLICATION_ERROR con el mensaje de error que indique que no se pueden introducir tuplas duplicadas. Esto hará que se muestre el mensaje y se cancele la inserción del nuevo registro.

RAISE_APPLICATION_ERROR(<code>,<mensaje>)

Ahora es cosa tuya pensar qué consulta y campos utilizar.
(Tampoco podría detallar más, sin saber qué tablas tienes).

Un Saludo.