如何使用更新或插入IN的PLAN

时间:2017-07-03 08:57:01

标签: sql firebird sql-execution-plan insert-update firebird2.5

我正在使用 Firebird 2.5 并遇到了一个我自己无法解决的问题。

使用UPDATE OR INSERT INTO的声明。我想让它使用一个特定的执行计划。但是 - 无论我在哪里放置PLAN - 我都会收到以下错误消息(行号因PLAN的位置而异):

  

令牌无效。
  动态SQL错误。
  SQL错误代码= -104   令牌未知 - 第2行,第5列   计划。

我在corresponding documentation中找不到PLANUPDATE OR INSERT INTO的使用情况。

我的问题方面:甚至可以一起使用它们吗?这是否有效或是否计划在 Firebird 的更高版本中使用?有没有明显的原因它不起作用,我没有看到?有哪些替代方法可以绕过这个?

1 个答案:

答案 0 :(得分:1)

在Firebird 2.5中不可能这样做(在3.0中也不可能)。查看parser definitionPLAN子句仅支持:

对于merge语句,应该可以为源指定计划(如果是选择查询),但不能为合并本身指定计划。没有为update or insert定义计划子句(例如,也不是insert)。

据我所知,没有计划将此添加到Firebird 4.您应该考虑在跟踪器中添加改进票据,但我不知道这是否甚至可能。