PDA

Ver la Versión Completa : error al crear una tabla


ebeltete
03-06-2007, 18:39:21
estoy conectado en firebird y al querer crear una tabla:

CREATE TABLE GIROS(
CODIGO INTEGER NOT NULL,
NOMBRE VARCHAR(60),
PRIMARY KEY(CODIGO))

me aparece este error:

ISC ERROR MESSAGE:
unsuccessful metadata update
STORE RDB$FIELDS failed
Column has been unexpectedly deleted

Al González
03-06-2007, 19:30:13
¡Hola!

Es probable que la clave de usuario con la que ingresaste no tenga permisos para crear nuevas tablas, o, más específicamente, para modificar la tabla del sistema RDB$FIELDS (acción inherente).

Un abrazo privilegiado.

Al González. :)

ebeltete
04-06-2007, 02:22:22
Creo no haber hecho nada para que me pase esto, no entiendo

Lepe
04-06-2007, 11:25:07
Creo está tomando "PRIMARY KEY(CODIGO)" como si fuera una columna en lugar de su clave primaria, y al detectar las palabras reservadas primary key, borra la columna.


CREATE TABLE GIROS(
CODIGO INTEGER NOT NULL PRIMARY KEY,
NOMBRE VARCHAR(60)
)

Saludos

ebeltete
04-06-2007, 20:59:16
No creo que sea eso, trato de crear una tabla simple:
create table giros (codigo integer, nombre varchar(60))
y no puedo, me aparece el sig. error:
ISC ERROR MESSAGE:
unsuccessful metadata update
STORE RDB$FIELDS failed
Column has been unexpectedly deleted

Sin embargo puedo borrar tablas, con drop table XXX.

RDB$FIELDS es una tabla del sistema?
Porque me dice que se ha borrado inexplicablemente, pero lo raro es que la veo a RDB$FIELDS, puede que se haya dañado la bbdd?

Lepe
05-06-2007, 11:23:21
Todas las tablas con prefijo RDB$ son tablas de sistema, es donde Firebird/Interbase guarda la estructura de tu Base de datos, es decir, nombres de tablas, vistas, store procedures, nombres de índices, etc, etc.

¿Como estas ejecutando esos comandos? ¿usas un script, un Query, ib Expert?

Si modificas algo de las tablas de sistema "por la cara", es más que probable que fastidies la BBDD (una parte o todo), te aconsejo que solo hagas un select de las tablas RDB$ (al menos hasta que sepas como funciona).

Lo único que se me ocurre es extraer los metadatos en un Script (Ib Expert Personal ayuda bastante) y analizarlos, si todo está bien, crear otra base de datos a ver si hay algo inconsistente en la actual.

Por el error, parece que usas Firebird 2.x (yo sigo con 1.5)

Saludos

ebeltete
05-06-2007, 15:12:29
Uso Firebird 2.0, y trato de crear la tabla con un sql en ibconsole, las tablas RDB$ solo las mire por curiosidad sin modificar nada en ellas, seguramente se daño la bbdd, pero no se porque, quiero estar tranquilo de que un daño de esta naturaleza no me traiga complicaciones cuando los datos guardados en la bd no sean de real importancia, ahora solo estoy experimentando, uso Delphi 5 y los mdo, salu2 y gracias.

Al González
05-06-2007, 19:49:49
Bueno, por lo que comentas podría ser que estés tratando de modificar una base de datos de formato Firebird 2 con un servidor 1.5.

Quizá la DLL cliente usada para la operación no corresponde a Firebird 2 y está canalizando la acción al programa-servidor equivocado (incluso podría estar InterBase involucrado en esto si al instalar Delphi 5 no desactivaste la opción de instalar también InterBase).

Saludos.

Al.