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 回呼び出されるため、これらの数値は基本的に常に1.

変更または削除されたデータへのアクセスは、レコード変数OLDおよびを介して可能NEWです。

詳細はマニュアルにあります: http://www.postgresql.org/docs/current/static/plpgsql-trigger.html

トリガー(または関数)内で何かをロールバックまたはコミットすることはできません-とにかく非常に恐ろしい考えです。したがって、4) に相当するものはありません。

于 2013-01-11T09:13:00.370 に答える