Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Error al crear Primary Key

Hola y gracias por ver mi mensaje.


Quiero hacer una llave primaria y aqui esta la sentencia que uso


Código SQL [-]ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT PK_DETALLE_PLANILLA PRIMARY KEY (ID_REG)


pero me genera el siguiente error

Código SQL [-]ISC ERROR MESSAGE: attempt to store duplicate value (visible to active transactions) in unique index "PK_DETALLE_PLANILLA"

Última edición por Chogo fecha: 06-07-2010 a las 19:30:32.
Responder Con Cita
  #2  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Estas son la sentencias SQL

Código SQL [-]

CREATE TABLE DETALLE_PLANILLA 
(
  ID_REG                          BIGINT         DEFAULT 0 NOT NULL,
  ID_PLANILLA                    INTEGER         NOT NULL,
  CODEMPLEADO                    INTEGER         DEFAULT 0 NOT NULL,
  IDENTIDAD                      VARCHAR(    20)  COLLATE NONE,
  PROMEDIO_SEMANA                NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  HORAS_NOR                      NUMERIC(  3, 2) DEFAULT 0 NOT NULL,
  TOTAL_VALOR_NOR                NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  HORAS_EXT1                     NUMERIC(  3, 2) DEFAULT 0 NOT NULL,
  HORAS_EXT2                     NUMERIC(  3, 2) DEFAULT 0 NOT NULL,
  HORAS_EXT3                     NUMERIC(  3, 2) DEFAULT 0 NOT NULL,
  VALOR_EXT1                     NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  VALOR_EXT2                     NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  VALOR_EXT3                     NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  TOTAL_VALOR_EXT                NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  FERIADO                        NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  AJUSTE                         NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  BONO                           NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  SABADO                         NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  DOMINGO                        NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  BRUTO                          NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  IHSS                           NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  ISR                            NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  TOTAL_DEDUC                    NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  PAGO_NETO                      NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  PAGO_NETO_REDONDO              NUMERIC( 12, 2) DEFAULT 0 NOT NULL,
  IDLINEA                        INTEGER         NOT NULL,
  IHSS_EMP                       NUMERIC( 12, 2) DEFAULT 0.0 NOT NULL,
 CONSTRAINT PK_DETALLE_PLANILLA PRIMARY KEY (ID_REG)
);

ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANILLA 
  FOREIGN KEY (ID_PLANILLA) REFERENCES MAESTRO_PLANILLA
  (ID_PLANILLA) 
  ON DELETE NO ACTION
  ON UPDATE CASCADE
;

ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANILLA1 
  FOREIGN KEY (IDLINEA) REFERENCES LINEA
  (IDLINEA) 
  ON DELETE NO ACTION
  ON UPDATE CASCADE
;

ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANIL_EMPLEADOS 
  FOREIGN KEY (CODEMPLEADO) REFERENCES EMPLEADOS
  (CODEMPLEADO) 
  ON DELETE NO ACTION
  ON UPDATE CASCADE
;

CREATE ASC INDEX IDX_CODEMPLEADO ON DETALLE_PLANILLA (CODEMPLEADO);

CREATE ASC INDEX IDX_IDENTIDAD ON DETALLE_PLANILLA (IDENTIDAD);
Responder Con Cita
  #3  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Chogo Ver Mensaje
[..] ISC ERROR MESSAGE: attempt to store duplicate value (visible to active transactions) in unique index "PK_DETALLE_PLANILLA" [..]
Pues eso, que ya existe un índice para ese campo, así que puedes hacer varias cosas, lo más simple (si usas ibexpert, por ejemplo) es eliminar el índice y luego crear la primary key. Al crear la primary key ya se creará automáticamente el índice por ese campo.
Responder Con Cita
  #4  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
borre el campo y lo volvi agregar
Pero al hacer llave primaria me sale este error

Código SQL [-]
object columns are constrained- no 2 table rows can have duplicate column values.

attemp to store duplicate value(Visible to active transactions) in unique index "RDB$primary53"
Responder Con Cita
  #5  
Antiguo 06-07-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Casimiro, ¿no será más bien que el campo ID_REG tiene valores duplicados en los registros actuales de la tabla?
Responder Con Cita
  #6  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Chogo Ver Mensaje
borre el campo y lo volvi agregar
Pero al hacer llave primaria me sale este error
No, borrar el campo, no. Borrar el índice
Responder Con Cita
  #7  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Ya borre todos los registros
Responder Con Cita
  #8  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Casimiro, ¿no será más bien que el campo ID_REG tiene valores duplicados en los registros actuales de la tabla?
Sí, más bien eso. Había entendido que el error era al crear la clave porque existía el índice. Pero obviamente, si tiene valores repetidos entonces no podrá crearlo como quiere.
Responder Con Cita
  #9  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Chogo Ver Mensaje
Ya borre todos los registros
supongo que no te servían para nada
Responder Con Cita
  #10  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Esto es lo que tengo
Código SQL [-]
CREATE TABLE DETALLE_PLANILLA 
(   ID_PLANILLA INTEGER NOT NULL,   
CODEMPLEADO INTEGER DEFAULT 0 NOT NULL,   
IDENTIDAD VARCHAR(20) CHARACTER SET NONE COLLATE NONE,   
PROMEDIO_SEMANA NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
HORAS_NOR NUMERIC(3, 2) DEFAULT 0 NOT NULL,   
TOTAL_VALOR_NOR NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
HORAS_EXT1 NUMERIC(3, 2) DEFAULT 0 NOT NULL,   
HORAS_EXT2 NUMERIC(3, 2) DEFAULT 0 NOT NULL,   
HORAS_EXT3 NUMERIC(3, 2) DEFAULT 0 NOT NULL,   
VALOR_EXT1 NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
VALOR_EXT2 NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
VALOR_EXT3 NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
TOTAL_VALOR_EXT NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
FERIADO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
AJUSTE NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
BONO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
SABADO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
DOMINGO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
BRUTO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
IHSS NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
ISR NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
TOTAL_DEDUC NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
PAGO_NETO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
PAGO_NETO_REDONDO NUMERIC(12, 2) DEFAULT 0 NOT NULL,   
IDLINEA INTEGER NOT NULL,   IHSS_EMP NUMERIC(12, 2) DEFAULT 0.0 NOT NULL,   
ID_REG BIGINT DEFAULT 0 NOT NULL);   

ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANILLA FOREIGN KEY (ID_PLANILLA) REFERENCES MAESTRO_PLANILLA(ID_PLANILLA) ON UPDATE CASCADE;  

ALTER TABLE DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANILLA1 FOREIGN KEY (IDLINEA) REFERENCES LINEA(IDLINEA) ON UPDATE CASCADE;  ALTER TABLE 

DETALLE_PLANILLA ADD CONSTRAINT FK_DETALLE_PLANIL_EMPLEADOS FOREIGN KEY (CODEMPLEADO) REFERENCES EMPLEADOS(CODEMPLEADO) ON UPDATE CASCADE;  

CREATE INDEX IDX_CODEMPLEADO ON DETALLE_PLANILLA(CODEMPLEADO);  

CREATE INDEX IDX_IDENTIDAD ON DETALLE_PLANILLA(IDENTIDAD);
Responder Con Cita
  #11  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
La tabla es nueva. estoy en desarrollo.
Responder Con Cita
  #12  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si lo que quieres es crear una clave primaria, aquí tienes un simple ejemplo:

Código SQL [-]
create table  tbPAISES 
( 
  ID          domCodigoNoNulo, 
  Nombre      domNombre, 
  primary key (ID) 
);

Responder Con Cita
  #13  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
¿Tengo que elimnar la tabla y volver a hacerla?
El problema que tengo es ya tengo store procedure y trigger funcionando con esa tabla.
Responder Con Cita
  #14  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con cualquier manejador de base de datos: ibexpert, flamerobin, marathon, etc. puedes extraer la estructura de la base de datos (y los datos), puedes modificarla a tu gusto y volver a crear la base con la nueva estructura.
Responder Con Cita
  #15  
Antiguo 06-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Intente eliminar la tabla y no pude, me decia que estaba ocupada por otra transaccion. asi que apague el servidor(Reinicie la pc , no se como hacerlo de otra manera) y pude hacer la primary key.

al parecer habia transacciones en el limbo, no se como eliminar esas transaciones y lo unico que puedo hacer es apagar el server.

¿Como puedo resolver esos problemas en el futuro?
Responder Con Cita
  #16  
Antiguo 06-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No son transacciones en el limbo, son transacciones sin confirmar, eso depende del programa que accede a la base de datos. Revísalo para hacer commit (o rollback) de las transacciones. Que no se queden en espera.
Responder Con Cita
  #17  
Antiguo 06-07-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Chogo Ver Mensaje
Intente eliminar la tabla y no pude, me decia que estaba ocupada por otra transaccion. asi que apague el servidor(Reinicie la pc , no se como hacerlo de otra manera) y pude hacer la primary key.

al parecer habia transacciones en el limbo, no se como eliminar esas transaciones y lo unico que puedo hacer es apagar el server.

¿Como puedo resolver esos problemas en el futuro?
¿apagar el servidor?, no es mas facil detener y volver a iniciar el servicio del motor, el que esta en el panel de control, creo que eso puede funcionar.
__________________
all your base are belong to us
Responder Con Cita
  #18  
Antiguo 07-07-2010
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 19
Chogo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No son transacciones en el limbo, son transacciones sin confirmar, eso depende del programa que accede a la base de datos. Revísalo para hacer commit (o rollback) de las transacciones. Que no se queden en espera.
Esta transacciones sin confirmar, tienen algun id?,¿ como les envio un commit o rollback? . por que ya me ah pasado que me salgo de la aplicacion cliente. aun estan esas transacciones cuasandome problemas. no se como firmarlas o cancelarlas.
Responder Con Cita
  #19  
Antiguo 07-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Al salir del programa puedes poner una orden del tipo:

Código:
if ibtransaction.intransaction then
  ibtransaction.rollback;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Primary Key - SQL Server Oxa78 MS SQL Server 3 09-01-2006 23:27:47
Error Violation Primary Key maui Conexión con bases de datos 16 11-05-2004 15:49:46
primary key AMO SQL 7 14-02-2004 20:50:05
Primary key interbase 6 rafadrover Conexión con bases de datos 2 07-08-2003 08:40:20
Primary Key y Unique Key DrMatasanos Conexión con bases de datos 1 21-05-2003 11:01:20


La franja horaria es GMT +2. Ahora son las 13:21:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi