1

我正在尝试在 Sqlite 之上构建一些抽象函数,这些函数可以选择最好的函数来调用。我在自定义函数实现中执行此操作(而不是在 sql 中)。

一个例子:一个用途可能是这样的:SELECT username FROM Users WHERE id='blah' AND password = BEST_HASH('some string'). 在这种情况下,我将实现 best_hash,并希望它检查是否存在名为“sha1”或“bcrypt”的函数。当它找到最佳匹配时,然后调用适当的函数。

我的实际案例需要从现有的一组函数中选择最好的(这些函数在程序之外没有意义,因此有不同的例子)。

作为一名程序员,我正在尝试制作一个通用案例来确定一个函数是否存在。我有一个特定的版本,通过使用SELECT function_name(arg1, arg2, ...argN). 我如何将其概括为不知道有多少参数可用?

4

2 回答 2

0

我不知道 sqlite 是否支持 information_schema,但是在支持的系统(例如 postgres)中,您可以像这样查询特定函数是否存在:

select routine_name
from information_schema.routines
where routine_name = 'sha1';
于 2013-06-08T20:31:35.917 回答
0

您可以从 pragma 函数中进行选择,以查看 SQLite 中是否存在函数。

 select exists(select 1 from pragma_function_list where name='sum');
 1
于 2020-06-25T11:47:46.430 回答