Mysql
如何委託給另一個函式?
我想創建一個委託給另一個函式的函式,之前添加一些邏輯。
首先,我嘗試創建一個簡單地重定向到
ADDDATE
mysql 函式的函式:CREATE FUNCTION IF NOT EXISTS custom_function(thedate DATE, days INTEGER) RETURNS DATE DETERMINISTIC BEGIN return (select ADDDATE(thedate, days)); END
結果:
#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 '' at line 4
這裡有什麼問題?錯誤消息並沒有真正的幫助……
select
不是FUNCTION
編寫. 如果函式可以簡單地表示,則 and 是可選BEGIN
的。END``RETURN <<expression>>
至少在使用命令行“mysql”程序時需要“定界符”的東西。如果您使用的是其他一些 UI,它的使用可能會有所不同。
創建函式:
DELIMITER // CREATE FUNCTION IF NOT EXISTS custom_function(thedate DATE, days INTEGER) RETURNS DATE DETERMINISTIC RETURN ADDDATE(thedate, days); // DELIMITER ;
使用範例:
SELECT custom_function(CURDATE(), 5);
結果:
+-------------------------------+ | custom_function(CURDATE(), 5) | +-------------------------------+ | 2022-08-20 | +-------------------------------+