2013-06-29 3 views
0

Я пытаюсь сделать процедуру создания, не существует столбец в моей таблице MySQL, как здесь: MySQL add column if not existMySQL Процедура: Если столбец не существует создать его

Моя процедура:

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 ; 

Но у меня есть ошибка:

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

Любой знать почему?

ответ

1

Хорошо ... Я делаю это в 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"); 
    } 
} 
+0

Имена не могут быть правильно параметрированы, так что вам будет необходимо либо создать запрос динамически или использовать Макроподстановку вида РНР из параметризации, как вы делали Вот. Пожалуйста, подумайте о том, чтобы принять ваш собственный ответ формально, чтобы таким образом отметить вопрос как решенный. –

Смежные вопросы