PostgreSQL | ||
---|---|---|
Prev | Chapter 39. Triggers | Next |
Postgres データは可視規則を変えます: 問 い合わせ実行の間、データの変更は問い合わせ自身で(SQL-関数,SPI-関数, ト リガー等を通して)行なわれ、問い合わせ走査に対しては不可視です。たとえば、 問い合わせの中で:
INSERT INTO a SELECT * FROM a挿入されたタップルは SELECT 走査には対しては不可視です。影響として、 それ自身のテーブルの中でデータベースを再帰することなく重複させます (もちろん、一意の索引の規則に従って)。
しかしながら、SPI 文書の中の可視性についてのこの注意書きは心に留め ておいて下さい:
問い合わせ Q によりなされる変更は、問い合わせの後に開始される問い合わせ に対しては可視で、それらが Q の中で(Q の実行中に)開始されるかあるいは Q が実行された後かには無関係です。
これはトリガーにとっては当たり前のことですが、挿入されるタップル (tg_trigtuple) は前(BEFORE)トリガーの中の問い合わせに対しては可視で は無く、この(丁度挿入される)タップル後(AFTER)トリガーの中の問い合わ せ、BEFORE/AFTER トリガーの中でこの後に発行される問い合わせに対して は可視です!
Prev | Home | Next |
Interaction with the Trigger Manager | Up | Examples |