在查询中将MySql函数变量用作表名
|
我需要一个增加表中特定ID的函数(例如auto_increment)
我有这样的东西
分隔符$$
如果存在`GetNextID` $$,则使用DROP功能
创建函数`GetNextID`(tblName TEXT,增量INT)
返回整数
确定性
开始
声明NextID INT;
SELECT MAX(concat(tblName,\'ID \'))+从concat(\'table_ \',tblName)递增INTO NextID;
## SELECT MAX(articleID)+从table_article递增INTO NextID;
返回NextID;
END $$
定界符;
INSERT INTO`table_article`(articleID,articleAlias)值(GetNextID(\'article \',5),\'TEST \');
因此,我传递了两个变量:tblName(无“ 0”前缀)和增量编号。带注释的行-函数本身内部的SELECT查询-效果很好,但是我想动态地将表名传递给函数,以便从某些表的某个col获得数据。我究竟做错了什么?
错误是:
#1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在\'(\'table_ \',tblName)附近使用正确的语法;
返回NextID;
END \'在第6行
如果我只是尝试以这种方式选择最大值
SELECT MAX(articleID)+从tblName到INTO NextID的增量;
该错误报告tblName不存在。我怎样才能告诉MySql这实际上是传递给函数的var,而不是确切的表名?如果可能的话。
没有找到相关结果
已邀请:
1 个回复
献导外拘