Insertar Foreing key nula
Publicado por Juan Arias (6 intervenciones) el 23/07/2009 15:26:57
Buenos días, tengo el siguiente problema: tengo dos tablas, una de cheques y otra de facturas. Para relacionar los cheques con las facturas inserte en la tabla de cheques el id de la tabla de facturas, ahora bien, cuando cargo un cheque, no necesariamente tiene que estar relacionado con una factura, por lo que necesito insertar un valor nulo en el idfactura que se encuentra en la tabla cheques.
Genexus, por mas que le pongas que acepte nulos, no funciona correctamente. Esto se debe a que no inserta un valor nulo realmente, sino que, por ej, si el id es numérico, inserta un 0. Cuando sucede esto, el motor de base de datos (MySQL) tira un error ya que en la tabla de facturas no hay ninguna fila con id = 0.
A esto lo puedo resolver de dos maneras:
1. Voy al administrador de MySQL y elimino el índice que se crea para mantener la integridad relacional (no me parece una buena solución)
2. Inserto una fila en la tabla de facturas con id=0 (tampoco me parece bueno ya que voy a tener que agregar condiciones en todas partes para no trabajar con esta fila)
3. Crear una tabla relacional
Ahora, lo que debería hacer es crear la tabla relacional, pero esta situación se me da en varias oportunidades, por lo que voy a tener que crear varias tablas relacionales. Querría saber si en genexus esta contemplada de alguna manera esta situación o si hay alguna manera para que inserte un valor nulo (pero nulo de verdad y no un 0...). Desde ya muchas gracias. Saludos
Genexus, por mas que le pongas que acepte nulos, no funciona correctamente. Esto se debe a que no inserta un valor nulo realmente, sino que, por ej, si el id es numérico, inserta un 0. Cuando sucede esto, el motor de base de datos (MySQL) tira un error ya que en la tabla de facturas no hay ninguna fila con id = 0.
A esto lo puedo resolver de dos maneras:
1. Voy al administrador de MySQL y elimino el índice que se crea para mantener la integridad relacional (no me parece una buena solución)
2. Inserto una fila en la tabla de facturas con id=0 (tampoco me parece bueno ya que voy a tener que agregar condiciones en todas partes para no trabajar con esta fila)
3. Crear una tabla relacional
Ahora, lo que debería hacer es crear la tabla relacional, pero esta situación se me da en varias oportunidades, por lo que voy a tener que crear varias tablas relacionales. Querría saber si en genexus esta contemplada de alguna manera esta situación o si hay alguna manera para que inserte un valor nulo (pero nulo de verdad y no un 0...). Desde ya muchas gracias. Saludos
Valora esta pregunta


0