【问题标题】:Labeled blocks in PL/pgSQLPL/pgSQL 中的标记块
【发布时间】:2018-09-01 15:15:15
【问题描述】:

这个程序在 MySQL 中运行良好。

BEGIN

   some_name:BEGIN

   END

END

NOT 在 PostgreSQL 中。它总是显示:

ERROR:  syntax error at or near "some_name" Line n...

我们如何在 postgresql 中做到这一点? 作为信息,我正在从事将数据库从 MySQL 迁移到 PostgreSQL 的项目。

我不知道这个案例的最佳标题是什么。请有人根据案例编辑正确的标题。谢谢。

【问题讨论】:

    标签: mysql postgresql plpgsql database-migration


    【解决方案1】:

    您不是在使用嵌套过程,而是在使用嵌套块。这些在 PostgreSQL 中得到了很好的支持。标签有不同的语法。它在plpgsql 文档的第一页上进行了描述。读起来很实用,因为PL/pgSQL(PostgreSQL)的语法和PSM(MySQL)不同,

    PostgreSQL PLpgSQL 中标签的正确语法是<<name>>

    所以你的代码应该是这样的:

    BEGIN
       <<some_name>>
       BEGIN
          ...
       END;
    END;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 2012-08-08
      • 2016-04-27
      • 1970-01-01
      • 2013-02-16
      相关资源
      最近更新 更多