Untitled
unknown
sql
3 years ago
2.2 kB
1
Indexable
CREATE TABLE Amigo( Nombre VARCHAR(50), Edad INTEGER ); SET SERVEROUTPUT ON; --Para activar la salida por pantalla --Se define un disparador sobre esta tabla CREATE OR REPLACE TRIGGER dispAmigo BEFORE INSERT OR UPDATE --Un trigger se ejecuta cuando hace un INSERT OR UPDATE OR DELETE --tambien se puede poner para que se lance cuando se hace un cambio de un campo --INSERT OR UPDATE OR DELETE OF Nombre --Tambien se puede poner BEFORE(antes de los cambios) o AFTER(despues de los cambios) ON Amigo FOR EACH ROW -- Esto hace que se ejecute en cada fila BEGIN --Aqui código del trigger dbms_output.put_line('**Ejecutando trigger'); --Distincion de casos IF INSERTING THEN dbms_output.put_line('**Capturo insercion'); ELSE dbms_output.put_line('**Capturo actualizacion'); END; CREATE OR REPLACE TRIGGER dispAmigo2 BEFORE UPDATE ON Amigo FOR EACH ROW when (NEW.Edad > 50) --Para restringir el evento de update --para que se cumpla algo en concreto --el NEW es despues de la modificación --y el OLD para antes de la modificación BEGIN dbms_output.put_line('**Capturo actualizacion'); dbms_output.put_line('**Antes: ' || :OLD.Edad); dbms_output.put_line('**Despues: ' || :NEW.Edad); END; INSERT INTO AMIGO VALUES ('Pepe', 39); UPDATE amigo SET edad = 69 WHERE name = 'Pepe'; --A veces en el old y new puedes acceder a valores NULL --En el evento de INSERT, los valores OLD son NULL. Antes de la --insercion las filas no existian por lo tanto serán NULL --En el evento de DELETE es parecido, en NEW será NULL --Lunes 8 de octubre, 100mins de examen --Consultas SQL ( 5 preguntas) --Procedimientos/Funciones, PL/SQL (1 pregunta) --Disparadores, no caen --Los ejercicios son parecidos(¿iguales?) al de examen --Seguramente dejará acceso a los apuntes del campus --Los errores de detalles no le importa mucho(¿era INSERTING o INSERT?) --Mismo nivel que el examenes FINALES --Diapo 14, de transacciones y concurrencia --1er transaccion 1 al 5 --2da transaccion 6 al 7 --3ra transaccion 8 , (la 9 no cuenta ha fallado por tener primary key repetida) al 11 --4ta transaccion, sin confirmar
Editor is loading...