Что я делаю неправильно в этой хранимой процедуре MySQL?

Я пытаюсь использовать следующую хранимую процедуру.

DELIMITER $$

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `DeleteField`( IN _TABLENAME Text, IN _FIELDNAME text)
BEGIN
  if exists (select * from information_schema.Columns 
    where table_name = _TABLENAME and column_name = _FIELDNAME) 
  then 
    alter table _TABLENAME drop column _FIELDNAME;
  end if;
END

Таким образом, я действительно Звоню ('anytable', 'Анифилд'), и я получаю Ошибочную Ошибку Code:1146Table'Database. _ tablename'doesn't существуют, Этот _tablename должен быть моим параметром, не строкой.

Некоторая справка, прежде чем я подвешу меня, я люблю свою жизнь слишком много.

5
задан AndersK 6 August 2010 в 23:37
поделиться