elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  MYSQL. Crear un campo en una table si no existe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MYSQL. Crear un campo en una table si no existe  (Leído 12,655 veces)
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
MYSQL. Crear un campo en una table si no existe
« en: 4 Marzo 2011, 10:47 am »

Hola,
Quiero crear un nuevo campo en un tabla siempre que no exista previsamente evitando de esta forma el error que daría por campo existente.

Se que podría hacerlo con un sencillo PHP pero me gustaría tenerlo en forma de sentencias SQL a lanzar desde el phpmyadmin.

He probado con :

Código:
IF NOT EXISTS (SELECT active FROM ps_marcas)
BEGIN
   ALTER TABLE ps_marcas ADD active tinyint(1) unsigned NOT NULL DEFAULT '1'
END

y el error que me devuelve es:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = `ps_' at line 1

Alguien sabe que puede estar pasando?
Gracias.


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: MYSQL. Crear un campo en una table si no existe
« Respuesta #1 en: 4 Marzo 2011, 11:36 am »

http://www.cryer.co.uk/brian/mysql/howto_add_column_unless_exists.htm

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.637


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: MYSQL. Crear un campo en una table si no existe
« Respuesta #2 en: 4 Marzo 2011, 17:17 pm »

cómo bien te dice Novlucker  tienes que crear  un "stored procedure" si es para mirar  campo de una tabla, pero si es para crear una tabla "si no existe" basta con el IF NOT EXISTS

Código:
CREATE TABLE IF NOT EXISTS message_icons 

Citar
MySQL 5.0 soporta las palabras IF NOT EXISTS para que no ocurra un error si la tabla existe. Tenga en cuenta que no hay verificación que la tabla existente tenga una estructura idéntica a la indicada por el comando CREATE TABLE . Nota: Si usa IF NOT EXISTS en un comando CREATE TABLE ... SELECT ,cualquier registro seleccionado por la parte SELECT se inserta si la tabla existe o no.
En línea

OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: MYSQL. Crear un campo en una table si no existe
« Respuesta #3 en: 4 Marzo 2011, 17:50 pm »

Que grandes que sois!!!
Problema solucionado!!
Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines