Gracias por la respuesta.
Devuelve el nro de transaccion 860511, tipo I
Y la segunda consulta devuelve 4 subcomisiones creadas
Gracias por la respuesta.
Devuelve el nro de transaccion 860511, tipo I
Y la segunda consulta devuelve 4 subcomisiones creadas
Otras pruebas que hemos hecho:
al querer hacerlo, nos sale este cartel:
-Simulamos inscribir a subcomision con una inscripción nueva y esas si se pueden dar de baja.
Es decir, que el problema está en las subcomisiones que se pasaron por INSERT en la tabla sga_insc_subcomisiones.
Si por la base, eliminamos la inscripcion a la subcomision (ver imagen), de la tabla sga_insc_subcomisiones
y luego queremos ir a eliminar la inscripcion en sga_inscripciones_cursadas, nos dice que tenemos una subcomision vinculada a esa inscripción, y no es así, pues la hemos eliminado.
Claro, tenes Insc Subcomision asociadas a la Subcomisión y por ende la Comisión.
Lo extraño es que la función f_insc_cursada_eliminar elimina de la tabla sga_insc_subcomision antes de eliminar en sga_insc_cursada, con lo cual no se porque te esta dando este error:
2026-03-11 19:47:13.017 UTC [1236524] postgres@toba_3_3 ERROR: update or delete on table “sga_insc_cursada” violates foreign key constraint “fk_sga_insc_subcomision_sga_insc_cursada” on table “sga_insc_subcomision”
2026-03-11 19:47:13.017 UTC [1236524] postgres@toba_3_3 DETAIL: Key (inscripcion)=(387105) is still referenced from table “sga_insc_subcomision”.
2026-03-11 19:47:13.017 UTC [1236524] postgres@toba_3_3 STATEMENT: DELETE
FROM sga_insc_cursada
WHERE inscripcion = 387105
– toba_log: 870264625
Claro, en realidad primero tenes que ejecutar:
DELETE FROM sga_insc_subcomision WHERE inscripcion = 387105;
Y luego:
DELETE FROM sga_insc_cursada_instancias WHERE inscripcion = 387105;
DELETE FROM sga_insc_cursada WHERE inscripcion = 387105;
Pero lo ideal es usar la función f_insc_cursada_eliminar, ya que registra en la tabla sga_insc_cursada_log ademas de otras cosas más:
SELECT * FROM f_insc_cursada_eliminar(387105);
Saludos.
Tampoco se puede mover entre subcomisiones en estos casos.
Es, al parecer, un lote de subcomisiones insertadas, porque hicimos un nuevo insert con 3 casos y si nos dejó borrar. Es decir, un lote de insert en subcomisiones no las borra. Están en un “limbo” donde si las eliminamos por la base, desaparecen de la tabla, pero las inscripciones sigue haciendo referencia a esas subcomisiones.
Hola Emiliano, este error da tanto si quieren borrar la inscripcion por la interfaz de Gestion como de Autogestion?
¿Lo da en cualquiera de las inscripcones de esa comision o tambien lo da con inscripciones de otras comisiones que tienen subcomisiones?
¿La comision tiene subcomisiones, no?
Si borran la inscripcion por la base, ejecutando la siguiente funcion, tambien les da error de fk?
SELECT * FROM f_insc_cursada_eliminar(<ID INSCRIPCION>);
¿que te devuelven las siguientes queries?
SELECT *
FROM sga_insc_subcomision
WHERE inscripcion = 387105;
SELECT *
FROM sga_insc_cursada
WHERE inscripcion = 387105;
SELECT *
FROM sga_subcomisiones
WHERE comision IN (SELECT comision FROM sga_insc_cursada WHERE inscripcion = 387105);
¿sigue dando el mismo error o es otro diferente?
update or delete on table “sga_insc_cursada” violates foreign key constraint
“fk_sga_insc_subcomision_sga_insc_cursada”
Key (inscripcion)=(387105) is still referenced from table “sga_insc_subcomision”.
Es decir, que el problema está en las subcomisiones que se pasaron por INSERT en la tabla sga_insc_subcomisiones.
Nos podrías decir como hicieron dichos INSERTs manuales.
Saludos.
Otra consulta,
¿que triggers se disparan en la tabla sga_insc_subcomision?
SELECT tgname
FROM pg_trigger
WHERE tgrelid = 'sga_insc_subcomision'::regclass
AND NOT tgisinternal;
Existe el trigger tdb_sga_insc_subcomision que resta de la tabla sga_subcomisiones_cupo, ¿tienen un registro en el tabla sga_subcomisiones_cupo para la subcomisión en cuestión?
Saludos.
Buenos días:
Se detectó el error. Se había creado una tabla en un esquema nuevo para probar un sistema de elección de subcomisiones con posterioridad a la inscripción a las cursadas que estaba referenciando a la tabla sga_insc_subcomision del esquema negocio.
Pero eso no lo podíamos ver ni el técnico ni yo como funcional. Y no estaba documentado ese cambio.
Perfecto @jhdiaz
Con esta query podes ver todas las tablas que hacen referencia a la tabla sga_insc_subcomision:
SELECT
tc.table_schema AS referencing_schema,
tc.table_name AS referencing_table,
kcu.column_name AS foreign_key_column,
ccu.table_schema AS referenced_schema,
ccu.table_name AS referenced_table
FROM
information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
AND tc.table_schema = kcu.table_schema
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
AND ccu.table_schema = tc.table_schema
WHERE tc.constraint_type = 'FOREIGN KEY'
AND ccu.table_name = 'sga_insc_subcomision'
ORDER BY referencing_schema, referencing_table;
En nuestro caso no devuelve ninguna, pero con tu personalización seguro devuelve la que generó el problema.
Saludos.