Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
F.64. tcn — a trigger function to notify listeners of changes to table content
Prev UpAppendix F. Additional Supplied Modules and Extensions Shipped inpostgrespro-std-17-contribHome Next

F.64. tcn — a trigger function to notify listeners of changes to table content#

Thetcn module provides a trigger function that notifies listeners of changes to any table on which it is attached. It must be used as anAFTER triggerFOR EACH ROW.

This module is consideredtrusted, that is, it can be installed by non-superusers who haveCREATE privilege on the current database.

Only one parameter may be supplied to the function in aCREATE TRIGGER statement, and that is optional. If supplied it will be used for the channel name for the notifications. If omittedtcn will be used for the channel name.

The payload of the notifications consists of the table name, a letter to indicate which type of operation was performed, and column name/value pairs for primary key columns. Each part is separated from the next by a comma. For ease of parsing using regular expressions, table and column names are always wrapped in double quotes, and data values are always wrapped in single quotes. Embedded quotes are doubled.

A brief example of using the extension follows.

test=# create table tcndatatest-#   (test(#     a int not null,test(#     b date not null,test(#     c text,test(#     primary key (a, b)test(#   );CREATE TABLEtest=# create trigger tcndata_tcn_triggertest-#   after insert or update or delete on tcndatatest-#   for each row execute function triggered_change_notification();CREATE TRIGGERtest=# listen tcn;LISTENtest=# insert into tcndata values (1, date '2012-12-22', 'one'),test-#                            (1, date '2012-12-23', 'another'),test-#                            (2, date '2012-12-23', 'two');INSERT 0 3Asynchronous notification "tcn" with payload ""tcndata",I,"a"='1',"b"='2012-12-22'" received from server process with PID 22770.Asynchronous notification "tcn" with payload ""tcndata",I,"a"='1',"b"='2012-12-23'" received from server process with PID 22770.Asynchronous notification "tcn" with payload ""tcndata",I,"a"='2',"b"='2012-12-23'" received from server process with PID 22770.test=# update tcndata set c = 'uno' where a = 1;UPDATE 2Asynchronous notification "tcn" with payload ""tcndata",U,"a"='1',"b"='2012-12-22'" received from server process with PID 22770.Asynchronous notification "tcn" with payload ""tcndata",U,"a"='1',"b"='2012-12-23'" received from server process with PID 22770.test=# delete from tcndata where a = 1 and b = date '2012-12-22';DELETE 1Asynchronous notification "tcn" with payload ""tcndata",D,"a"='1',"b"='2012-12-22'" received from server process with PID 22770.


Prev Up Next
F.63. tablefunc — functions that return tables (crosstab and others) Home F.65. test_decoding — SQL-based test/example module for WAL logical decoding
pdfepub
Go to Postgres Pro Standard 17
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp