error (-692)

Estimados consulto ¿se podria cambiar o actualizar el codigo de un libro mal cargado?Pues lo intente desde la bace de datos y me da ese error .SALUDOS CORDIALES

Hola Federico,

Podrias poner aqui como intentaste cambiarlo y el mensaje de error
saludos
ignacio

Si, el tema que ese dato se encuentra en otras tablas que tienen foreign key con esa tabla y por eso no te deja cambiarlo.
¿Es un libro de actas de examen?

Se puede, hay que abrir una transaccion, desahbilitar los constraints de foreign key, cambiar ese dato en todas la tablas donde se encuentre esa columna de libro de actas y cerrar la transaccion, algo asi:

BEGIN WORK;
SET CONTRAINTS ALL DEFERRED;  -- Hace que no valide las fk cuando cambies el valor en la tabla de libros de actas
UPDATE sga_libros_de_acta SET libro = xxxx WHERE libro = yyyy;
UPDATE sga_actas_examen  SET libro = xxxx WHERE libro = yyyy;
UPDATE sga_actas_promo  SET libro = xxxx WHERE libro = yyyy;
COMMIT WORK;


Para poder saber que tablas hacen referencia (por medio de una foreign key) a la tabla “sga_libros_de_actas” debes correr la siguiente consulta:


  SELECT st.tabname,
         informix.sysreferences.ptabid,
         informix.sysreferences.delrule,
         informix.systables.tabname,   
         informix.systables.tabid,   
         informix.sysconstraints.constrid,   
         informix.sysconstraints.constrname,   
         informix.sysconstraints.constrtype,   
         informix.sysconstraints.idxname,   
         informix.sysindexes.idxtype,  
         informix.sysreferences.primary  
    FROM informix.sysconstraints,   
         informix.systables,   
         informix.sysindexes,  
         informix.sysreferences,
         informix.systables st   
   WHERE ( informix.systables.tabid = informix.sysconstraints.tabid ) and  
         ( informix.sysconstraints.idxname = informix.sysindexes.idxname ) and  
         ( informix.sysconstraints.constrtype = 'R') and  
         ( informix.sysconstraints.constrid = informix.sysreferences.constrid ) and  
         ( informix.sysreferences.ptabid = st.tabid ) and  
         ( informix.systables.tabid >= 100 ) and st.tabname = 'sga_libros_de_acta'