作为MariaDB查询中的参数

s71maibg  于 2023-02-16  发布在  其他
关注(0)|答案(1)|浏览(119)

我在Maria DB中有以下代码,
我想在查询中使用函数创建一个序列,该序列以my TABLE1的count(*)+1开始
它在CREATE SEQUENCE查询中给出了一个错误:

CREATE FUNCTION myFuntion() RETURNS INT
    BEGIN
       DECLARE lastID INT DEFAULT 1;
       SELECT COUNT(*) INTO lastID FROM TABLE1;
       RETURN lastID+1;
    END;
    
   CREATE SEQUENCE seq101 START WITH myFuntion() INCREMENT BY 1 ;

错误:
错误1064(42000):SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,了解在"myFuntion()INCREMENT BY 1"附近使用的正确语法}

btqmn9zl

btqmn9zl1#

我认为唯一的方法是使用预准备语句和变量,因为PREPARE FROM/EXECUTE IMMEDIATE中不允许使用用户函数。

SELECT count(*) + 1 INTO @lastid FROM yourtable
EXECUTE IMMEDIATE CONCAT("CREATE SEQUENCE seq101 START WITH ", @lastid," INCREMENT BY 1");

相关问题