Problema con indices

Tenemos problemas con una tabla en SIU Guarani.

Cuando quisimos hacer un delete en una tabla pero nos dice

240:Could not delete a row

Creemos es un indice roto, por lo que corrimos

oncheck -cI bdmedicina:sga_equiv_otorgada

Lo cual nos devuelve que efectivamente hay un indice roto, el cual pertenece a una fk

ERROR: No data row exists for btree item. Rowid 0x1430 contains key value: Key: "EMED":"MEDI":"1032":"1":"00068": Btree item contains rowid 0xa25, key value: Key: "EMED":"MEDI":"1032":"1":"00068":

Alguna vez se solucionó pasando los datos a una tabla temporal, dropeando la tabla original, creandola tabla nuevamente con sus pk y fk y luego volviendo a cargar los datos.

Existe otra forma de solucionar que no implique el drop de una tabla?

Desde ya agradecemos.


Equipo SIU
Universidad Nacional del Comahue

Hola, probaste eliminar las FK que tiene esa tabla?
El error es del índice de la PK o de alguna de sus FK?

Hola Alejandro, soy compañero de paconqn por un problema de perfil no pudo ver mas esta parte del foro, te contesto lo que hicimos.

Sacamos las FK con alter table drop constraint…
hicimos el delete q necesitabamos hacer y agregamos FK de nuevo con alter table.

Solucionamos ese problema.

pero si vuelvo a hacer
oncheck -cI bdmedicina:sga_equiv_otorgada

sigue dando el error en el indice.

ERROR: No data row exists for btree item.
Rowid 0x1430 contains key value:
Key: “EMED”:“MEDI”:“1032”:“1”:“00068”:
Btree item contains rowid 0xa25, key value:
Key: “EMED”:“MEDI”:“1032”:“1”:“00068”:

Por ahora no surgieron problemas. Pero ese error en el indice no me gusta, me parece que en algun momento cuando se quiera hacer alguna operacion con equivalencias va a trer problemas.

Luego de borrar la FK, ejecutaron en oncheck -ciI sobre esa tabla y no dio error?
Estos errores que te informa el oncheck son nuevamenet sobre el indice asociado a la creación de la FK?

No, no dio error…

Si, vuelvo a crear la FK y vuelve el error al hacer el oncheck

Tenemos informix 7

Podes indicarnos que FK es la que da ese error?

[b]fk_eq_otor_version

[/b]

Gustavo, hace un checkeo de los índices y datos de la tabla sga_versiones_plan.

hice:

[b]oncheck -ciI bdmedicina:sga_versiones_plan[/b]

Validating indexes for bdmedicina:dba.sga_versiones_plan…
Index 803_4092
Index 803_4658

No se si te referias a eso con un checkeo de indices y datos

Asi es, parece que no tenes problemas con los indices sobre sga_versiones_plan.
Hace los mismo sobre la tabla sga_equiv_otorgada. Un checkeo de los indices y tambien de los datos (oncheck -ciId base:sga_equiv_otorgada)