Buenas, es mi primer post en este foro y por lo que veo es muy inetresante asi que seguramente en el futuro voy a colaborar.
Mi problema actual es el siguiente:
Tengo que importar una BD de datos de un cliente que utiliza un sistema viejo y lo tengo que adaptar al nuevo. Esta adaptación incluye Insert de nuevos campos, renombrar campos , cambiar tipos de campos etc etc.
Todo funciona correctamente pero en una de las tablas, en la que necesito insertar un nuevo campo ID con las especificaciones que correspondientes ( nombre, tipo) y obviamente este campo tiene que ser PRIMARY KEY. El problema que tengo es que en la tabla que estoy actualizando ya hay un campo que tiene las caracteristicas.
Probe con las sentencias SQL que da PHPMyAdmin y el resultado siempre es un error.
Necesito quitarle el PRIMARY KEY al campo antiguo e insertar el campo nuevo como PRIMARY KEY.
Las sentencias SQL para agregar campos y actualizar, cambiando los tipos y todo los demas ya las tengo y funcionan correctamente.
Gracias
Publicado:
Vie Jun 29, 2007 5:21 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cambiar primary Key de una tabla
Anuncios
radarcba escribió:
Buenas, es mi primer post en este foro y por lo que veo es muy inetresante asi que seguramente en el futuro voy a colaborar.
Mi problema actual es el siguiente:
Tengo que importar una BD de datos de un cliente que utiliza un sistema viejo y lo tengo que adaptar al nuevo. Esta adaptación incluye Insert de nuevos campos, renombrar campos , cambiar tipos de campos etc etc.
Todo funciona correctamente pero en una de las tablas, en la que necesito insertar un nuevo campo ID con las especificaciones que correspondientes ( nombre, tipo) y obviamente este campo tiene que ser PRIMARY KEY. El problema que tengo es que en la tabla que estoy actualizando ya hay un campo que tiene las caracteristicas.
Probe con las sentencias SQL que da PHPMyAdmin y el resultado siempre es un error.
Necesito quitarle el PRIMARY KEY al campo antiguo e insertar el campo nuevo como PRIMARY KEY.
Las sentencias SQL para agregar campos y actualizar, cambiando los tipos y todo los demas ya las tengo y funcionan correctamente.
Gracias
Para que no te dé error tendrás que hacerlo por partes:
1º Agregar el campo que será clave primaria (Primary Key):
Código:
ALTER TABLE nombre_tabla ADD COLUMN
campo_clave_primaria_nuevo INTEGER;
2º Agregar la información de este campo (los datos de los registros, si los hay).
3º Quitar el campo actual que es primary key, con una consulta SQL como esta:
Código:
ALTER TABLE nombre_tabla DROP PRIMARY KEY;
4º Establecer el campo nuevo como primary key con una consulta SQL como esta:
Código:
ALTER TABLE nombre_tabla ADD PRIMARY KEY (`campo_clave_primaria_nuevo`);
De esta forma, si los datos del campo "campo_clave_primaria_nuevo" cumplen las reglas de integridad, si no hay valores duplicados ni valores nulos, te debería funcionar.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A