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.
http://www.cryer.co.uk/brian/mysql/howto_add_column_unless_exists.htm
Saludos
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.
Que grandes que sois!!!
Problema solucionado!!
Gracias.