PDA

Ver la Versión Completa : Trigger para actualizar el id de una tabla


Choclito
10-07-2004, 02:30:47
bueno tengo dos tablas la cual tienen relacion 1 a muchos las cuales son
table
cuenta (
id char (3),
descripcion varchar (20)) y
la tabla
cuenta2(
id2 char (6),
descripcion varchar (25),
id char (3),
foreign key (id) references cuenta(id))
quiero que la llave de la tabla cuenta2 sea la concatenacion de su llave mas la llave foranea que tiene e hice un triger para esto pero el cual solo realiza para el primer registro y nada mas el triger es el siguiente
COMMIT WORK;
SET TERM ^;
CREATE TRIGGER INSERTAR_PRUEBA FOR CUENTA2
ACTIVE AFTER INSERT AS
BEGIN
UPDATE CUENTA SET ID=ID||'-'||ID2;
END^
SET TERM ; ^
COMMIT WORK;
y la verdad quisiera que me ayuden les estare muy agradecido nose en que estos fallando o talves hay otra forma de hacer que la llave de una tabla sea la concatenacion de su llave mas la llave foranea que tiene la tabla.
Muchas gracias foro esperar realmente que me ayuden.................

guillotmarc
12-07-2004, 00:29:57
Hola.

Pues no debería hacerlo ni para el primer registro. Estás ejecutandolo en un evento AfterInsert, es decir una vez ya se ha creado el registro, por lo que las modificaciones que hagas en las variables new. no se reflejarán en la base de datos. Realízalo en un evento Before Insert.

NOTA: Me parece una chapuza que pongas un valor en un campo (el campo ID) y que un trigger lo modifique automaticamente. Seria mejor que utilizaras dos campos, uno en el que guardes ID2 y otro en el que guardes ID1 || ID2 (que además puede ser un campo calculado de la base de datos (computed by), por lo que no deberías ni darle valor en un trigger).

Saludos.

rastafarey
13-07-2004, 20:46:38
No entiendo para que quiers concatenarlo simplemente cuando lo selcciones selecionalo concatenado si es eso lo quieres

Espero te sea de ayuda