If table have an inclusion with LIKE what happens to triggers?

Started by Goran Hasseover 8 years ago2 messagesgeneral
Jump to latest
#1Goran Hasse
gorhas@gmail.com

Hello,

If I have a small table with common fields

CREATE TABLE common_filelds
(
created_timestamp timestamp,
updated_timestamp timestamp
)

Then I put som triggers on those fields

CREATE OR REPLACE FUNCTION update_modified_timestamp_function() RETURNS
trigger AS
$$
BEGIN
NEW.modified_timestamp := CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$
LANGUAGE plpgsql VOLATILE;

CREATE TRIGGER common_field_update_triger
BEFORE UPDATE ON rscada.common_fields
FOR EACH ROW
EXECUTE PROCEDURE update_modified_timestamp_function();

And then include this in another table

CREATE TABLE venue
(
name varchar default '',
LIKE common_fields
)

The triggers is not executed.

Is there any way to inherit also
the triggers from the common_field table?

Or must I place triggers on all tables?

/Cordially yours

--
gorhas@gmail.com
Göran Hasse
Boo 229
715 91 ODENSBACKEN
Mob: 070-5530148

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: Goran Hasse (#1)
Re: If table have an inclusion with LIKE what happens to triggers?

On Wed, Dec 13, 2017 at 11:21 AM, Göran Hasse <gorhas@gmail.com> wrote:

Is there any way to inherit also
the triggers from the common_field table?

​No

Or must I place triggers on all tables?

​Yes​

​The docs cover what is able to be copied and triggers are not mentioned.

​​https://www.postgresql.org/docs/10/static/sql-createtable.html

Mostly column-related things are copied, not table-related things (e.g.,
table comments, triggers, policies)

​I suspect its mostly a lack of need warranting the effort than any
fundamental design reason.​

​David J.