# postgres naming trigger

Taken From <https://severalnines.com/database-blog/postgresql-triggers-and-stored-function-basics>

Pattern `[TBALE_NAME]_[FUNCITON NAME]_[WHEN][1 or more WHY][t]`

When:

* b - Before
* a - After
* i - Instead of

WHY:

* i - Insert
* u - Update
* d - Delete
* t - Truncate

t = 'trigger'

eg: `my_table_update_ts_biut` means it's a trigger on my\_table, triggers update\_ts before insert & update

Reasoning: Just by looking at the trigger name, you know which table, and when it is triggered

example

```
-- function to update updated_at column during insert or update
CREATE OR REPLACE FUNCTION update_timestamp()
    RETURNS trigger AS
$$
BEGIN
    NEW.updated_at := NOW();
    RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';


CREATE TRIGGER users_update_timestamp_biut
    BEFORE INSERT OR UPDATE
    ON users
    FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();
```
