Haz tu Pregunta
0

No puedo introducir registros en una tabla. Resuelto

preguntado 2019-10-15 19:28:37 +0100

Imagen Gravatar de PedroL

updated 2019-10-16 11:08:55 +0100

Al intentar introducir un nuevo registro en una tabla me da el siguiente mensaje: firebird_sdbc error: *violation of PRIMARY or UNIQUE KEY constraint "INTEG_11" on table "Tratamientos HOM" *Problematic key value is ("ID" = 19) caused by 'isc_dsql_execute' Parece como si tratara de escribir encima de un registro ya existente, en lugar de incorporar uno nuevo a la tabla. ¿Alguna idea de como solucionarlo?

edit re-etiquetar marcar como ofensivo cerrar fusionar delete

Comments

No, no esta tratando de escribir en otro registro, el error es claro, un ID si el campo esta identificado como único, no puede repetirse, simplemente se esta violando una regla. ¿Como estas introduciendo el nuevo registro?, ¿es una base de datos migrada de la versión anterior de Base?, si puedes mostrar la estructura de la tabla "Tratamientos HOM", mejor, si no tienes datos privados, la base para verificarla.

Imagen Gravatar de mauricio mauricio ( 2019-10-15 21:25:18 +0100 )edit

Sí, es una base de datos migrada de la versión anterior de Base y de HSQLDB a Firebird. En la versión anterior funcionaba muy bien, pero desde que he migrado me crecen los enanos... Ahora al intentar abrir la BD para copiarte la estructura me da este error firebird_sdbc error: *connection shutdown caused by 'isc_service_attach' Ya no sé qué hacer...

Imagen Gravatar de PedroL PedroL ( 2019-10-15 21:41:07 +0100 )edit

1 Responder

Ordenar por » viejos nuevas más votado
0

respondido 2019-10-15 22:09:24 +0100

Imagen Gravatar de Ratslinger

updated 2019-10-15 22:26:12 +0100

Hola,

El problema radica en la conversión. El sistema no establece correctamente el siguiente incremento automático. He publicado una respuesta anteriormente en el foro de inglés aquí:

https://ask.libreoffice.org/en/questi...

Editar (básicamente información de otra publicación):

Durante la conversión, el incremento automático no se configuró correctamente. Puede configurar esto con una instrucción SQL.

Haga una copia de seguridad de su .odb en caso de problemas creados. Obtenga el mayor valor actual de la clave. Puede obtener ejecutando la consulta (espero que la traducción sea buena):

Select MAX("ID") from "Tratamientos HOM"

Luego, usando ese valor, desde el menú en la pantalla principal de .odb, Herramientas-> SQL ... ingrese:

ALTER table "Tratamientos HOM"  alter "ID" restart with NNNN;

donde NNNN es el valor de la clave primaria más alta obtenida.

Prueba de insertar un nuevo registro.

edit marcar como ofensivo delete enlace mas

Comments

¡Ahora sí funciona! Muchísimas gracias a todos y en especial a Ratslinger. Estaba a punto de tirar la toalla.

Imagen Gravatar de PedroL PedroL ( 2019-10-16 11:08:59 +0100 )edit
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2019-10-15 19:28:37 +0100

Visto: 33 veces

Ultima actualización: Oct 16