[英]how to pass table name into a function?
is there any method how to make MySQL function that receives table name or field name ? 有什么方法可以使MySQL函数接收表名或字段名?
something like this : 像这样的东西:
CREATE PROCEDURE delete_row(the_id INT UNSIGNED , @table_name )
BEGIN
IF ....... THEN
BEGIN
DELETE FROM @table_name WHERE id = the_id ;
.............
END
END
I tested it with string (SET @table_name="table_name"), but it doesn't works. 我用字符串(SET @ table_name =“ table_name”)测试了它,但是它不起作用。
declare varchar(max) @mySQL
set @mySQL = 'DELETE FROM ' + @tablename + 'WHERE id = ' + Convert(varchar, @the_id)
sp_executeSQL @mySQL
and to make this work on MySQL (as the commenters pointed out) it should look like this: 并使其在MySQL上起作用(如评论者所指出的那样),它应如下所示:
mysql> prepare stmt from -> 'DELETE FROM ' + @tablename + 'WHERE id = ' + Convert(varchar, @the_id)
mysql> execute stmt;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.