mysql 变量作表名查询_使用MySQL函数变量作为表名查询
我需要有一個表中增加一定的ID(如AUTO_INCREMENT)函數(shù)使用MySQL函數(shù)變量作為表名查詢
我有水木清華這樣
DELIMITER $$
DROP FUNCTION IF EXISTS `GetNextID`$$
CREATE FUNCTION `GetNextID`(tblName TEXT, increment INT)
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE NextID INT;
SELECT MAX(concat(tblName, 'ID')) + increment INTO NextID FROM concat('table_', tblName);
## SELECT MAX(articleID) + increment INTO NextID FROM table_article;
RETURN NextID;
END$$
DELIMITER ;
INSERT INTO `table_article` (articleID, articleAlias) VALUES (GetNextID('article', 5), 'TEST');
所以我通過兩個變量:tblName(不含table_前綴)和增量編號。注釋行 - SELECT函數(shù)本身內(nèi)部的查詢 - 效果很好,但我想動態(tài)地將表名稱傳遞給函數(shù),因此從某個表的某個列中獲取數(shù)據(jù)。我究竟做錯了什么?
的錯誤是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('table_', tblName);
RETURN NextID;
END' at line 6
,如果我只是試圖以這樣的方式
SELECT MAX(articleID) + increment INTO NextID FROM tblName;
的錯誤報告tblName不存在選擇最大值。我如何告訴MySql這實際上是一個傳遞給函數(shù)的變量,而不是一個確切的表名?如果可能。
2011-04-14
dr3w
總結(jié)
以上是生活随笔為你收集整理的mysql 变量作表名查询_使用MySQL函数变量作为表名查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怀孕后吃什么菜好呢?!
- 下一篇: 椰子叫纯椰子水孕妇能喝吗?