EDITAR: No sé qué distribución es, está en una hoja de examen.SQL: La declaración desencadena VS para cada fila
No estoy recibiendo esto, por desgracia. Estoy bastante contento con los desencadenadores de nivel de Fila, pero ¿podría alguien explicarme cómo diferirían los resultados si el activador fuera el nivel de declaración en su lugar?
Relación/Declaración de activación/fila nivel de disparo
Employee(ID VARCHAR2(30), Salary NUMBER)
Create Trigger AutoRaise
After insert on Employee
Referencing new table as NT
update Employee
Set salary = salary + (select avg(salary) from NT)
Create trigger AutoRaise
After insert on Employee
Referencing new table as NT
For each Row
Update employee
Set salary = salary + (select avg(salary) from NT)
entiendo que en el gatillo para cada fila que va a disparar para cada fila afectada por la declaración del activador. Ahora, ¿el nivel de declaración desencadenar modifica los resultados de manera diferente? Digamos que si insertara cinco tuplas en una declaración, ¿establecería el salario, etc. para todas ellas? Si es así, ¿cuál es el beneficio del desencadenante de nivel de fila aquí?
He intentado buscar pero no puedo entenderlo.
Gracias,
EDIT: Ahora, sólo estoy siendo densa sino que sea gatillo producir diferentes salidas? Para el gatillo nivel de sentencia si usara los valores de ejemplo:
En la tabla antes de la creación del gatillo:
(A,50)
añadió en una declaración después de que se crea el gatillo:
(B,70), (C,30)
El primer disparador fijaría el salario para cada tupla que se inserta, sin duda? Entonces, el primero se convertiría en 120 (como el promedio es 50, 70 + 50 = 120) y el segundo se convertiría en 80. Si esto es cierto, ¿cómo difiere el segundo disparador en los resultados?
** ¿QUÉ ** sistema de base de datos y de qué versión estás hablando? ** SQL ** es solo el lenguaje de consulta estructurado, un lenguaje utilizado por muchos sistemas de bases de datos. SQL es ** NO ** un producto de base de datos ... este tipo de cosas suele ser específico del proveedor, por lo que realmente necesitamos saber qué sistema de base de datos de la que está hablando ... –
VARCHAR2 parece indicar que es Oracle. Sin embargo, la sintaxis no es válida porque no existe la referencia a una tabla nueva como ... 'y también falta el inicio/finalización. –
Desafortunadamente esto es de un documento de examen anterior por lo que no se menciona ninguna distribución específica. –