mysql - PL/pgSQL 中的标记 block

标签 mysql postgresql plpgsql database-migration

此程序在MySQL中运行良好。

BEGIN

   some_name:BEGIN

   END

END

但在 PostgreSQL 中。它总是显示:

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

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

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

最佳答案

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

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

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

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

关于mysql - PL/pgSQL 中的标记 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441276/

相关文章:

postgresql - 防止用户在默认表空间中创建表

调试 PL/Python 函数

MySQL:存储过程插入语句错误

mysql root用户总是显示访问被拒绝访问任何操作

java - 组织.postgresql.util.PSQLException : ERROR: null value in column "id" violates not-null constraint

python - 心理学/Postgres : Connections hang out randomly

postgresql - 为什么 postgres set_config 的 is_local = true 不保留整个事务的变量?

function - 函数中 EXISTS 子句的性能不佳

sql - mysql 查询对某些结果进行排序,但连接数据可能存在或不存在

mysql - 是否可以将 EntityFramework 7 与 MySql 一起使用?使用 PostGres?