MYSQL. Crear un campo en una table si no existe

Iniciado por OssoH, 4 Marzo 2011, 10:47 AM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

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 :


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.

Novlucker

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

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

CREATE TABLE IF NOT EXISTS message_icons

CitarMySQL 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.

OssoH

Que grandes que sois!!!
Problema solucionado!!
Gracias.