![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Problema al crear una llave primaria
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 */
Código:
ALTER TABLE TIPOS_IDENTIFI ADD CONSTRAINT PK_COD_TIP_IDE PRIMARY KEY (COD_TIP_IDE); 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. Código:
ALTER TABLE TIPOS_IDENTIFI ADD CONSTRAINT PK_COD_TIP_IDE PRIMARY KEY (NOM_IDENTI); 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. |
|
#2
|
||||
|
||||
|
No sé si es algo nuevo, pero nunca había visto ese array:
CREATE DOMAIN ENT_CORTO AS SMALLINT [0:32767]; Lo normal: CREATE DOMAIN ENT_CORTO AS SMALLINT;
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
1. Si quieres declarar un array en firebird (aunque no es usual, y hasta sus propios desarrolladores desaconsejan su uso) la cosa es: Tipo [tamaño] mientras que tu haces Tipo [0:tamaño]
2. Tener un array como clave primaria no es legal. 3. El error justamente te dice que no está permitido. 4. Lee la Release Notes y la documentación de Firebird. |
|
#4
|
||||
|
||||
|
Por lógica una clave primaria deber unica, y un arreglo rompe esa regla.
Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
|
#5
|
|||
|
|||
|
Mil gracias por la colaboración, efectivamente el error fue mio, al crear el dominio le defini el arreglo y le puse los limites que aparecen en la definición.
Ya corregi borrando el dominio y volviendo a crearlo sin el arreglo y los limites ingresados. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Extrañisimo problema con Llave | juliobuitrago | Firebird e Interbase | 5 | 23-03-2011 10:23:58 |
| buscando llave primaria | Willo | MySQL | 0 | 14-12-2007 17:16:19 |
| Crear Llave Primaria | ebeltete | Firebird e Interbase | 2 | 07-12-2007 15:20:11 |
| Llave primaria repetida | Coco_jac | Varios | 5 | 29-08-2007 23:48:12 |
| crear una llave alfanumerica con un generador | reina | SQL | 3 | 17-08-2005 19:49:44 |
|