Buenas noches, agradezco su colaboración para determinar que puedo estar haciendo mal o para saber si existe alguna restricción para crear llaves primarias con campos smallint.
Cree una base de datos con la siguiente estructura
Código:
CREATE DATABASE 'localhost:C:\BDSIDUTEC\SIDUTEC3.fdb'
USER 'SYSDBA' PASSWORD '**********'
PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;
/* Roles */
CREATE ROLE RDB$ADMIN;
/* Domains */
CREATE DOMAIN CAD_CORTA AS
CHAR(20);
CREATE DOMAIN CAD_LARGAS AS
VARCHAR(255);
CREATE DOMAIN CAD_MEDIANA AS
CHAR(40);
CREATE DOMAIN CARACTER AS
CHAR;
CREATE DOMAIN ENT_CORTO AS
SMALLINT [0:32767];
CREATE DOMAIN ENT_LARGO AS
INTEGER;
CREATE DOMAIN NUM_DOC AS
BIGINT
NOT NULL;
/* Tables */
CREATE TABLE TIPOS_IDENTIFI (
COD_TIP_IDE ENT_CORTO NOT NULL,
NOM_IDENTI CAD_MEDIANA NOT NULL
) ;
COMMIT;
/* Datos por tabla */
Intente crear una llave primaria cuando cree la tabla pero no me lo permitio, luego intente adicionar la llave primaria con el siguiente comando
Código:
ALTER TABLE TIPOS_IDENTIFI ADD CONSTRAINT PK_COD_TIP_IDE PRIMARY KEY (COD_TIP_IDE);
No acepta el commando y genera el siguiente error:
Código:
Engine Error (code = 335544351):
unsuccessful metadata update.
attempt to index array column in index PK_COD_TIP_IDE.
SQL Error (code = -607):
This operation is not defined for system tables.
Para descartar un error en la sintaxis del comando ingrese el mismo código para el campo NOM_IDENTI y si se creo la llave primaria.
Código:
ALTER TABLE TIPOS_IDENTIFI ADD CONSTRAINT PK_COD_TIP_IDE PRIMARY KEY (NOM_IDENTI);
Ante esto me agradaria saber si es que los tipos de datos smallint tienen alguna restricción para crear las llaves primarias o los dominios pueden estar generando algún problema?
Mil gracias por la ayuda que me puedan brindar, estoy trabajando con Firebird 2.5.1., Firebird Maestro 14 y Windows 7 Profesional de 32 bits.