Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Crear Trigger en Sybase para Validar un Foreign Key

Estas en el tema de Crear Trigger en Sybase para Validar un Foreign Key en el foro de Bases de Datos General en Foros del Web. Estoy tratando de crear un Trigger en Sybase para validar que el código del producto insertado en una tabla exista en otra tabla. El código ...
  #1 (permalink)  
Antiguo 03/06/2008, 10:36
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses
Puntos: 7
Crear Trigger en Sybase para Validar un Foreign Key

Estoy tratando de crear un Trigger en Sybase para validar que el código del producto insertado en una tabla exista en otra tabla.

El código del triger es el siguiente:

Código:
 
CREATE TRIGGER "tgValidaCodigoInsumo" AFTER INSERT
 ORDER 1 ON "DBA"."labores_insumos"
 /* REFERENCING NEW AS new_name */
 FOR EACH ROW
 /* WHEN ( search_condition ) */
BEGIN
 Declare @IdInsumo int;
 Declare @Conteo   int;
 Select @IdInsumo = Cod_Insumo From Inserted;
 
 --Validando que el Código a Insertar Exista en el Maestro--
 Select @Conteo = Count(*) From Productos Where codigo = @IdInsumo;
 if @Conteo = 0 Then
      RollBack;
 END If;
----------------------------------------------------------- 
END 
El trigger se crea perfectamente, pero cuando intento grabar el dato en la tabla con un código que si existe, me ahorra el siguiente error:

SQLSTATE = 37000
Cita:
[Sybase][ODBC Driver][Adaptive Server Anywhere]Syntax error or access violation: Trigger or foreign key for table 'labores_insumos' is no longer valid
No changes made to database.
INSERT INTO labores_insumos ( cod_insumo, cantidad, dosis, id, cod_deposito, id_labores, tipo ) VALUES ( 1761, 25.00, 0.201612903225806452, 1127062, 100, 1127060, 'T' )
¿Qué estoy haciendo mal?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 04/06/2008, 00:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Crear Trigger en Sybase para Validar un Foreign Key

Parece que algun valor es más largo de lo que acepta el campo.

No conozco Sybase, pero porque un trigger para validar una FK? No existen FKs en Sybase?
  #3 (permalink)  
Antiguo 04/06/2008, 06:22
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses
Puntos: 7
Respuesta: Crear Trigger en Sybase para Validar un Foreign Key

Cita:
Iniciado por seyko Ver Mensaje
Parece que algun valor es más largo de lo que acepta el campo.

No conozco Sybase, pero porque un trigger para validar una FK? No existen FKs en Sybase?
Si existen FKs en Sybase, pero la base de datos tiene un diseño tan malo que no me permite implementar los FKs. Por ejemplo, la tabla que almacena el maestro de productos tiene de prymary key un campo llamado "Id", pero la información que se graba en la tabla "Labores_Insumos" es el contenido del campo "Codigo". No obstante, El primary key de la tabla productos debería ser 3 campos en vez de uno...

Ya te puedes imginar el arroz con mango que hizo el que creó esa base de datos...

Gracias por tu comentario, revisaré los del tamaño del campo!
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:19.