用于T-SQL函数的等效PL / pgSQL函数(Postgres)(Sybase)

时间:2013-01-11 09:08:43

标签: postgresql tsql sybase plpgsql

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

例如,我们在Sybase中使用以下语句,我必须找到它们:

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

1 个答案:

答案 0 :(得分:1)

如果使用行级触发器(Sybase和Microsoft没有),Postgres中不需要

1,2和3。

由于每行调用一次触发器,这些数字基本上始终为1

通过记录变量OLDNEW可以访问修改或删除的数据。

手册中有更多详细信息:http://www.postgresql.org/docs/current/static/plpgsql-trigger.html

你无法在触发器(或函数)内回滚或提交某些内容 - 无论如何这都是非常可怕的想法。所以没有相当于4)