SoloCodigo

Programación General => Power Builder => Mensaje iniciado por: henjuacar1 en Domingo 17 de Junio de 2007, 19:15

Título: Forma De Eliminar Registros De Tablas Relacionadas
Publicado por: henjuacar1 en Domingo 17 de Junio de 2007, 19:15
tengo 2 tablas cargos(principal), y datosper(foránea), quisiera eliminar registros de la tabla cargos pero no me permite, ahora power builder me presenta 3 opciones de eliminar registros de tablas relacionadas, pero ninguna de las tres se acomoda a lo que yo necesito.
quiero eliminar registros de la tabla cargos, sin que se elimine los registros de la tabla secundaria, la cual se relaciona por el campo codcargo.
Título: Re: Forma De Eliminar Registros De Tablas Relacionadas
Publicado por: F_Tanori en Lunes 18 de Junio de 2007, 11:33
Citar
ahora power builder me presenta 3 opciones de eliminar registros de tablas relacionadas, pero ninguna de las tres se acomoda a lo que yo necesito.

¿a que te refieres con eso?

¿estas hablando de las tablas de la base de datos, o a los datos en un datawindow relacionado?

si es de la base de datos:
y eliminas datos de la tabla principal lo que conseguirias es 'quebrantar' la integridad de tus datos pues dejaras registros 'huerfanos' en la tabla secundaria y es precisamente para lo que se declaran las llaves foraneas (para cuidar la integridad referencial )

Si tu sistema trabaja asi ¿no seria conveniente que mejor no definieras la foranea? pues no cumple su objetivo


o utilizar un registro 'padre' que indique que fue eliminado

ejemplo

cargos
Citar
codcargo | descripcion
----------------------------------
eliminado| registro eliminado

y tener que actualizar los datos en la segunda tabla

Código: Text
  1.  
  2. UPDATE datosper SET codcargo='eliminado' WHERE codcargo='50'
  3. DELETE FROM cargos WHERE codcargo='50'
  4.  
  5.  

para no dejar los detalles 'huerfanos' sino apuntando a 'eliminado'


Bueno , eso es lo que entendi


¿Que version estas utilizando? y ¿que base de datos?

Saludos