как передать имя таблицы в функцию? - PullRequest
1 голос
/ 22 июня 2011

Есть ли способ, как сделать функцию MySQL, которая получает имя таблицы или имя поля?

примерно так:

CREATE PROCEDURE delete_row(the_id INT UNSIGNED , @table_name )  
BEGIN  
    IF ....... THEN
    BEGIN
        DELETE FROM @table_name WHERE id = the_id ;
        .............
    END
END

Я проверил это с помощью строки (SET @ table_name = "table_name "), но это не работает.

1 Ответ

0 голосов
/ 22 июня 2011
declare varchar(max) @mySQL
set @mySQL = 'DELETE FROM ' + @tablename + 'WHERE id = ' + Convert(varchar, @the_id)
sp_executeSQL @mySQL

и чтобы это работало на MySQL (как указали комментаторы), оно должно выглядеть так:

mysql> prepare stmt from -> 'DELETE FROM ' + @tablename + 'WHERE id = ' + Convert(varchar, @the_id)
mysql> execute stmt; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...