Hola.
Acabo de ejecutar tu código en un script:
Código SQL
[-]
SET TERM ^ ;
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)
)^
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)
) ^
ALTER TABLE DATLOC ADD CONSTRAINT
FK_DATLOC FOREIGN KEY(CODPRV, POBLACION)
REFERENCES POBLACION(CODPRV, CODIGO)
ON DELETE CASCADE ON UPDATE CASCADE ^
SET TERM ;^
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