0

在从 Sybase 到 PostgreSQL 的迁移中,我必须翻译一些触发器。在执行此操作时,我们在 Sybase (T-SQL) 中使用的函数遇到了一些问题,并且在 PostgreSQL (PL/pgSQL) 中找不到等效函数。

例如,我们在 Sybase 中使用以下语句,我必须为其找到等效语句:

  1. select @inscount = count(*) from inserted
  2. select @delcount = count(*) from deleted
  3. @@rowcount(修改的行数)
  4. 回滚事务
4

1 回答 1

1

如果您使用行级触发器(Sybase 和 Microsoft 没有),则 Postgres 中不需要 1、2 和 3。

由于每行都调用一次触发器,因此这些数字基本上总是1.

OLD可以通过记录变量和访问修改或删除的数据NEW

更多细节在手册中:http ://www.postgresql.org/docs/current/static/plpgsql-trigger.html

您不能在触发器(或函数)内回滚或提交某些内容——无论如何,这是一个非常可怕的想法。所以没有等价于4)

于 2013-01-11T09:13:00.370 回答