什么是高级?这就叫高级—openGauss(224)

24 阅读1分钟

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/

场景说明:

  1. 只有RESIGNAL,即RESIGNAL。这种形式的RESIGNAL语句直接恢复上一个诊断区域的堆栈,并将其设置为当前诊断区域,相当于未修改错误信息,直接抛出。
  2. 带有signal_information_item的RESIGNAL,即RESIGNAL SET signal_information_item [, signal_information_item] …。与仅有RESIGNAL的场景一致,但该场景会根据signal_information_item修改弹出的错误信息。
  3. 带有condition_value和signal_information_item的RESIGNAL,即RESIGNAL condition_value [SET signal_information_item [, signal_information_item] …]。该场景会根据condition_value和signal_information_item更改错误信息,并将修改后的错误信息添加到诊断区域中。

约束说明:

  1. signal/resignal语法只在B模式下生效,即sql_compatibility = 'B'。
  2. resignal只能在declare … handler语句中调用。
  3. signal/resignal语句中,给condition_information_item_name赋值为NULL时,执行会报错。
  4. opengauss中的warning不会触发declare handler异常处理机制,但signal和resignal触发的warning告警会触发declare handler异常处理机制。

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/