Domanda

I try to make procedure that create non-exists column in my MySQL table like here: MySQL add column if not exist

My procedure:

DELIMITER $$
CREATE PROCEDURE Alter_Table(IN _table_name TEXT,IN _column_name TEXT,IN _column_type TEXT)
BEGIN
    DECLARE _count INT;
    SET _count = (  SELECT COUNT(*) 
                    FROM INFORMATION_SCHEMA.COLUMNS
                    WHERE   TABLE_NAME = _table_name AND 
                            COLUMN_NAME = _column_name);
    IF _count = 0 THEN
        ALTER TABLE _table_name ADD COLUMN _column_name _column_type;
    END IF;
END $$
DELIMITER ;

But I have an error:

#1064 - Something is wrong in your syntax obok '_column_type; END IF; END' w linii 9

Anyone know why?

È stato utile?

Soluzione

Ok... I make it in PHP...

function alter_table($table_name, $column_name, $column_type) {
    $result = mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS
                 WHERE TABLE_NAME = `$table_name` AND COLUMN_NAME = `$column_name`");
    if(!$result) {
        mysql_query("ALTER TABLE `$table_name`
            ADD COLUMN `$column_name` $column_type");
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top