检查函数别名是否存在

时间:2017-12-08 15:56:36

标签: java h2 user-defined-functions

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

stmt.execute("CREATE ALIAS LEVENSHTEIN FOR
 \"modules.musicProvider.LocalNetworkMusicProvider.computeLevenshteinDistance\"");

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

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

1 个答案:

答案 0 :(得分:1)

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

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

DROP ALIAS IF EXISTS LEVENSHTEIN;

我从this StackOverflow question获得了这些信息。

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

CREATE ALIAS IF NOT EXISTS LEVENSHTEIN ...

我从this StackOverflow questionthe H2 documentation获得了这个金块。

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

SELECT EXISTS(SELECT * FROM INFORMATION_SCHEMA.FUNCTION_ALIASES WHERE ALIAS_NAME = 'LEVENSHTEIN')

我从this StackOverflow question获得了此查询的基础知识。