Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-09-2003
Avatar de pinoxito
pinoxito pinoxito is offline
Miembro
 
Registrado: sep 2003
Posts: 16
Poder: 0
pinoxito Va por buen camino
Question Cambiar clave primaria

Hola foro! Cual es la sentencia válida para cambiar la clave primaria en una tabla en Interbase? Debo hacerlo en una tabla que ya contiene datos y no puedo borrar ningun dato... Gracias por la ayuda...
Responder Con Cita
  #2  
Antiguo 22-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Código:
ALTER TABLE Nombre_Tabla
DROP CONSTRAINT Nombre_Primary

ALTER TABLE Nombre_Tabla
ADD CONSTRAINT Nombre_Primary
PRIMARY KEY (Nombre_Campo)
Responder Con Cita
  #3  
Antiguo 27-09-2003
Avatar de pinoxito
pinoxito pinoxito is offline
Miembro
 
Registrado: sep 2003
Posts: 16
Poder: 0
pinoxito Va por buen camino
He probado esto que me has dicho pero no me funciona, mira necesito cambiar la clave primaria de esta tabla que creé hace tiempo:

CREATE TABLE "USUARIO"
(
"CODUSU" INTEGER NOT NULL,
"NOMBRE" VARCHAR(20) NOT NULL,
"CLAVE" VARCHAR(15) NOT NULL,
"ADMINISTRADOR" VARCHAR(1),
PRIMARY KEY ("CODUSU")
);

y necesito tener esto:

CREATE TABLE "USUARIO"
(
"CODUSU" INTEGER NOT NULL,
"NOMBRE" VARCHAR(20) NOT NULL,
"CLAVE" VARCHAR(15) NOT NULL,
"ADMINISTRADOR" VARCHAR(1),
PRIMARY KEY ("CODUSU", "NOMBRE")
);

Pero sin borrar ningun dato, ya que esta tabla esta funcionando con muchos datos.
Responder Con Cita
  #4  
Antiguo 28-09-2003
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 21
lbuelvas Va por buen camino
Hola foro,

puede ser que en tu base de datos hay una restriccion tipo llave foranea en otra tabla que esta enlazada con la llave primaria de la tabla a la cual quiere hacerle el cambio.

Debes entonces eliminar primero esas llaves foraneas, hacer los cambios a la llave primaria que te interesa.

Tocaria ampliar las tablas que contenian las llaves foraneas, colocar los valores adecuados a los registros y luego crear la llave foranea.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #5  
Antiguo 13-01-2004
Avatar de pinoxito
pinoxito pinoxito is offline
Miembro
 
Registrado: sep 2003
Posts: 16
Poder: 0
pinoxito Va por buen camino
No existen restricciones

No tengo ningun tipo de restriccion en las tablas

y en el codigo de Cadetill:
----------------------------------------------
ALTER TABLE Nombre_Tabla
DROP CONSTRAINT Nombre_Primary

ALTER TABLE Nombre_Tabla
ADD CONSTRAINT Nombre_Primary
PRIMARY KEY (Nombre_Campo)
----------------------------------------------

¿Acaso la clave primaria tiene un nombre? (nombre_Primary)

Última edición por pinoxito fecha: 13-01-2004 a las 15:19:47.
Responder Con Cita
  #6  
Antiguo 13-01-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Empezado por pinoxito
He probado esto que me has dicho pero no me funciona,
y ... ¿por qué no funciona?, ¿algún mensaje de error?, ¿sí?: ¿cuál?

No vendría mal que fueses más explícito; utilizar las artes adivinatorias no es algo que por aquí se nos dé nada bien. También vendría bien un poco de constancia en la participación en los hilos; con dos meses y medio de diferencia, es bantante probable que los que hubiesemos leído (personalmente ya no me acuerdo si lo había leído) o participado en el mismo no tengamos ni idea de qué iba el asunto y tengamos que leerlo entero otra vez.

Saludos.
Responder Con Cita
  #7  
Antiguo 13-01-2004
Avatar de pinoxito
pinoxito pinoxito is offline
Miembro
 
Registrado: sep 2003
Posts: 16
Poder: 0
pinoxito Va por buen camino
Cuando ejecuto la siguiente accion:

ALTER TABLE "USUARIO" DROP CONSTRAINT "PRIMARY KEY"

Me sale el siguiente error:

Unsuccessful metadata update
CONSTRAINT PRIMARY KEY does not exist
Statement: ALTER TABLE "USUARIO"
DROP CONSTRAINT "PRIMARY KEY"

por eso preguntaba, si en el codigo de cadetill la clave primaria tiene un nombre como el lo escribe:
----------------------------------------------
ALTER TABLE Nombre_Tabla
DROP CONSTRAINT Nombre_Primary
----------------------------------------------
Responder Con Cita
  #8  
Antiguo 13-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cuando decía

ALTER TABLE Nombre_Tabla
DROP CONSTRAINT Nombre_Primary

has de sustituir Nombre_Primary por el nombre que tenga tu clave primaria, por ejemplo :

ALTER TABLE PRUEBA DROP CONSTRAINT PK_PRUEBA
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:50:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi