检查函数别名是否存在
Check if function alias exists
我的目标是在 h2 中注册一个用户定义的函数。第二次执行程序时出现错误,提示我的函数别名已经存在。
stmt.execute("CREATE ALIAS LEVENSHTEIN FOR
\"modules.musicProvider.LocalNetworkMusicProvider.computeLevenshteinDistance\"");
看了 INFORMATION_SCHEMA 之后,我找不到事先检查函数是否已经定义的方法。
- 如何确定用户定义的函数是否已定义?
- 如何删除用户定义的函数?
我知道这是一个有点老的问题,但由于我今天一直在用户定义函数的这个确切领域使用 H2,所以我想我会回答这个问题。
一个选项是在创建 ALIAS
之前始终删除它:
DROP ALIAS IF EXISTS LEVENSHTEIN;
我从 this Whosebug question 那里得到了这些信息。
另一个选项是如果别名已经存在则不创建别名:
CREATE ALIAS IF NOT EXISTS LEVENSHTEIN ...
我从 this Whosebug question and the H2 documentation 那里得到了这个金块。
最后,您还可以执行此查询以查看 ALIAS
是否存在:
SELECT EXISTS(SELECT * FROM INFORMATION_SCHEMA.FUNCTION_ALIASES WHERE ALIAS_NAME = 'LEVENSHTEIN')
我从 this Whosebug question 获得了此查询的基础知识。
我的目标是在 h2 中注册一个用户定义的函数。第二次执行程序时出现错误,提示我的函数别名已经存在。
stmt.execute("CREATE ALIAS LEVENSHTEIN FOR
\"modules.musicProvider.LocalNetworkMusicProvider.computeLevenshteinDistance\"");
看了 INFORMATION_SCHEMA 之后,我找不到事先检查函数是否已经定义的方法。
- 如何确定用户定义的函数是否已定义?
- 如何删除用户定义的函数?
我知道这是一个有点老的问题,但由于我今天一直在用户定义函数的这个确切领域使用 H2,所以我想我会回答这个问题。
一个选项是在创建 ALIAS
之前始终删除它:
DROP ALIAS IF EXISTS LEVENSHTEIN;
我从 this Whosebug question 那里得到了这些信息。
另一个选项是如果别名已经存在则不创建别名:
CREATE ALIAS IF NOT EXISTS LEVENSHTEIN ...
我从 this Whosebug question and the H2 documentation 那里得到了这个金块。
最后,您还可以执行此查询以查看 ALIAS
是否存在:
SELECT EXISTS(SELECT * FROM INFORMATION_SCHEMA.FUNCTION_ALIASES WHERE ALIAS_NAME = 'LEVENSHTEIN')
我从 this Whosebug question 获得了此查询的基础知识。