PostgreSQL custom domain with trigger

postgresqltrigger

Is it possible to create custom domain / data type and associate some trigger with it, for example hash password?

I will have for example password domain and if I set some value to this column, it will automatically hash that, so I don't have to create trigger for each table with password column

Best Answer

You cannot do that.

As the documentation says:

CREATE TRIGGER creates a new trigger. The trigger will be associated with the specified table or view

This clearly excludes types and domains. (Very logically: triggers are normally fired upon changing something - here you want to change a column, not the type.)

You should instead use a stored procedure to take care of your password column(s). And personally I think the less places password are stored at, the better.