FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Error al definir una FOREIGN KEY
Tengo un BB.DD. en FB 2.5 con estas dos tablas:
Código:
CREATE TABLE Poblacion (CodPrv VARCHAR(2) DEFAULT '99' NOT NULL, Codigo INTEGER NOT NULL, Nombre VARCHAR(65) NOT NULL, Cpostal VARCHAR(10) NOT NULL, Pais VARCHAR(2) DEFAULT 'PD, CONSTRAINT PK_Poblacion PRIMARY KEY (CodPrv, Codigo)) Código:
CREATE TABLE DatLoc (CodPrv VARCHAR(2) DEFAULT '99' NOT NULL, Poblacion INTEGER NOT NULL, Actualiza TIMESTAMP, Padron INTEGER, Censo INTEGER, Concejales SMALLINT, Afiliados SMALLINT, Alcalde VARCHAR(60), Partido SMALLINT DEFAULT 1, Constitucion DATE, Sede VARCHAR(40), TlfSede VARCHAR(10), Presidente VARCHAR(60), TlfPres VARCHAR(10), Portavoz VARCHAR(60), TlfPort VARCHAR(10), Observaciones BLOB SUB_TYPE 1, CONSTRAINT PK_DatLoc PRIMARY KEY (CodPrv, Poblacion)) Código:
ALTER TABLE DATLOC ADD CONSTRAINT FK_DATLOC FOREIGN KEY (CODPRV,POBLACION) REFERENCES POBLACION(CODPRV,CODIGO) ON DELETE CASCADE ON UPDATE CASCADE; Cita:
|
#2
|
||||
|
||||
CREATE TABLE Poblacion (
CodPrv VARCHAR(2) DEFAULT '99' NOT NULL, Codigo INTEGER NOT NULL, Nombre VARCHAR(65) NOT NULL, Cpostal VARCHAR(10) NOT NULL, Pais VARCHAR(2) DEFAULT 'PD, // <--- No has cerrado la comilla CONSTRAINT PK_Poblacion PRIMARY KEY (CodPrv, Codigo)) |
#3
|
||||
|
||||
Esa errata ya la tengo corregida. De todas formas, cuando he ejecutado el ALTER TABLE ambas tablas ya existían. No acabo de ver dónde está el error. Lo que entiendo del mensaje de error es que los tipos de datos son distintos o ¿estoy equivocado?
|
#4
|
||||
|
||||
Hola.
Acabo de ejecutar tu código en un script: y, aunque personalmente le daría otro nombre a la columna 'POBLACION' de la tabla DATLOC, no me genera ningún error en IBExpert . Mi consulta es: ¿ Alguna de las tablas involucradas posee datos previos al momento de aplicar la nueva restricción ? Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Sí, la taba Poblacion tiene datos. Es una aplicación que ya está funcionando y hay que ampliar la base de datos con tablas nuevas.
|
#6
|
||||
|
||||
Hola.
Podría ser que algunos datos no cumplieran con la nueva restricción y eso te estuviera dando error. Por mi parte forcé la situación y el error que me genera IBExpert al aplicar la nueva restricción es: Cita:
De todos modos podrías crear dos nuevas tablas sin datos (a modo de prueba) e intentar aplicarle la restricción y ver si te genera el error. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al definir un FK en Firebird 2.5 | Angel.Matilla | Firebird e Interbase | 10 | 29-11-2016 13:13:26 |
Error al intentar borrar constraint foreign key | rfernandez | Firebird e Interbase | 5 | 08-10-2008 23:36:02 |
error al crear foreign key en firebird | carlo_acp | Conexión con bases de datos | 2 | 23-02-2008 02:58:08 |
error de violation of foreign key constraint... en ibx | Arturo | Firebird e Interbase | 1 | 07-12-2004 19:38:57 |
uso de FOREIGN KEY | jzginez | Firebird e Interbase | 2 | 22-04-2004 23:20:25 |
|