mysql - 如何将表名传递给函数?

标签 mysql sql

有什么方法可以使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") 测试了它,但它不起作用。

最佳答案

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; 

关于mysql - 如何将表名传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6443359/

相关文章:

sql - "Denali"是 SQL Server 的下一个版本吗?

mysql - SQL中如何显示count返回的值

在 MySQL 中插入日期时间时的 PHP date() 格式

Java Sql 'select sum' 给出不正确的值

mysql - hive 中的等级/组

php - Eloquent LaravelWhereInAll

sql - 如何从 timestamptz 中提取一致的年份

mysql - 如果触发器中存在条件,如何在 MySQL 表中插入记录

mysql - SQL JOIN 2 条件

javascript - mysql 数据库日期时间格式的 JQuery 日期和时间