Cita:
Iniciado por iislas Los TRIGGER's, fueron creados para guardar la integridad de los datos (DRI), no se recomienda su uso para la codificación de la lógica.
En cuanto a la estructura del FROM, bueno, hay mucha información en la red
Vaya chasco. Iba a publicar el trigger que había creado para mi ejemplo y resulta que no es esta la forma adecuada de hacerlo.
Bueno, no obstante reproduzco el ejemplo y el trigger que había hecho:
La tabla de personas:
Código SQL:
Ver originalTABLE "public.personas"
COLUMN | TYPE | Modifiers
----------------+-----------------------+-----------
id | INTEGER | NOT NULL
nombre_persona | CHARACTER VARYING(50) |
id_empresa | INTEGER | NOT NULL
Indexes:
"personas_pkey" PRIMARY KEY, btree (id)
Foreign-KEY constraints:
"personas_id_empresa_fkey" FOREIGN KEY (id_empresa) REFERENCES empresas(id)
La tabla de empresas:
Código SQL:
Ver originalTABLE "public.empresas"
COLUMN | TYPE | Modifiers
----------------+-----------------------+-----------
id | INTEGER | NOT NULL
nombre_empresa | CHARACTER VARYING(50) |
Indexes:
"empresas_pkey" PRIMARY KEY, btree (id)
Referenced BY:
TABLE "personas" CONSTRAINT "personas_id_empresa_fkey" FOREIGN KEY (id_empresa) REFERENCES empresas(id)
La tabla resultante del JOIN (ya viene referenciado el trigger):
Código SQL:
Ver originalTABLE "public.ver"
COLUMN | TYPE | Modifiers
----------------+-----------------------+-----------
nombre_persona | CHARACTER VARYING(50) |
nombre_empresa | CHARACTER VARYING(50) |
Triggers:
act BEFORE UPDATE ON ver FOR EACH ROW EXECUTE PROCEDURE "MiTrigger"()
La función :
Código SQL:
Ver originalSOURCE code |
| BEGIN
| UPDATE empresas SET nombre_empresa=NEW.nombre_empresa WHERE nombre_empresa=OLD.nombre_empresa;
| RETURN NEW;
| END;
Y bueno, hasta aquí la cosa funciona. Si cambio un nombre de empresa en la tabla "ver", se cambia en "empresas". Si siguiera por este camino entiendo que debería de hacer otro trigger que actualizase en sentido contrario
empresas->ver.
Pero parece que no es el método. Aún siendo pesado....¿cómo puedo interpretar la última parte de la sentencia que me pusiste?
O abusando del todo...como se adaptaría esa sentencias a mis tablas "persona", "empleado" y "ver".
Gracias y disculpa que sea tan pesado. :|