Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Alter Table

Estas en el tema de Alter Table en el foro de Mysql en Foros del Web. Hola a tod@s Tengo un problema. Tengo una consulta para agregar un campo nuevo a una tabla. Código PHP: ALTER TABLE  ` tabla `  ADD  ` ...
  #1 (permalink)  
Antiguo 01/12/2008, 22:45
 
Fecha de Ingreso: junio-2008
Mensajes: 71
Antigüedad: 15 años, 9 meses
Puntos: 0
Alter Table

Hola a tod@s

Tengo un problema.

Tengo una consulta para agregar un campo nuevo a una tabla.

Código PHP:
ALTER TABLE `tablaADD `columnaTipo DEFAULT 'x' NOT NULL AFTER `columna2
El problema es que si esta consulta se ejecuta y ya el campo existe, sale un "bonito error" de Duplicate column name

La cuestión es que he estado buscando la forma de que si el campo ya existe entonces no haga nada, hacerlo con algún cambio en la consulta pero no he encontrado nada ni en libros ni en internet ¿alguien sabe?
  #2 (permalink)  
Antiguo 02/12/2008, 04:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Alter Table

Lo que deberías hacer es ejecutar eso si y sólo si la columna no existe en la tabla. Para eso debes consultar la estructura de la tabla primero.
Un DESCRIBE Tabla, te devuelve una tabla con los nombres, descripciones de tipos y un par de campos más. Solamente deberías verificar esa columna y ejecutar el ALTER TABLE si no está.
Otra opción sería consultar la base INFORMATION_SCHEMA, la tabla INFORMATION_SCHEMA.SCHEMATA contiene los nombres y estructuras de todas las tablas válidas.
Esa es otra forma.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/12/2008, 20:49
 
Fecha de Ingreso: junio-2008
Mensajes: 71
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Alter Table

Gracias, por lo menos ya tengo con que comenzar a trabajar, y si que parece trabajo, las cosas serían más fácil con una especie de IGNORE o IF NOT EXISTS, pero quien sabe porque no hay nada para este caso.

Muchas gracias, ya me has sacado del camino equivocado donde por más que buscara no iba a encontrar solución nunca

Última edición por SebasSebas; 03/12/2008 a las 21:17 Razón: Resultó más fácil de lo que creí :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:19.