检查函数别名是否存在

Kil*_*ian 2 java h2 user-defined-functions

我的目标是在 h2 中注册一个用户定义的函数。我第二次执行程序时出现错误,指出我的函数别名已经存在。

stmt.execute("CREATE ALIAS LEVENSHTEIN FOR
 \"modules.musicProvider.LocalNetworkMusicProvider.computeLevenshteinDistance\"");
Run Code Online (Sandbox Code Playgroud)

在查看了 INFORMATION_SCHEMA 之后,我找不到一种方法来预先检查函数是否已经定义。

  1. 如何确定用户定义的函数是否已经定义?
  2. 如何删除用户定义的函数?

Som*_*sed 5

我知道这是一个老问题,但是当我今天在用户定义函数的这个确切领域使用 H2 时,我想我会回答这个问题。

一种选择是ALIAS在创建之前始终删除它:

DROP ALIAS IF EXISTS LEVENSHTEIN;
Run Code Online (Sandbox Code Playgroud)

我从这个 StackOverflow 问题中得到了这个信息。

另一个选项是如果别名已经存在,则不创建别名:

CREATE ALIAS IF NOT EXISTS LEVENSHTEIN ...
Run Code Online (Sandbox Code Playgroud)

我从这个 StackOverflow 问题H2 文档中得到了这个金块。

最后,您还可以执行此查询以查看是否ALIAS存在:

SELECT EXISTS(SELECT * FROM INFORMATION_SCHEMA.FUNCTION_ALIASES WHERE ALIAS_NAME = 'LEVENSHTEIN')
Run Code Online (Sandbox Code Playgroud)

我从这个 StackOverflow question获得了这个查询的基础知识。