【问题标题】:Check if function alias exists检查函数别名是否存在
【发布时间】:2018-05-22 21:46:05
【问题描述】:

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

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

查看 INFORMATION_SCHEMA 后,我找不到预先检查函数是否已定义的方法。

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

【问题讨论】:

    标签: java h2 user-defined-functions


    【解决方案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 获得了此查询的基础知识。

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 2012-07-04
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2011-10-23
      相关资源
      最近更新 更多