Insere automaticamente o nome de login quando uma nova linha é criada no postgres

1

No Postgres 10, é possível inserir automaticamente o nome da função de login ao criar uma nova linha?

i.e. Eu já estou usando um timestamp para rastrear a data em que uma linha foi criada. Também seria útil ver qual usuário criou a linha.

Obrigado!

    
por Jesse Reilly 26.10.2017 / 08:24

1 resposta

3

Sim. Basta fazer o padrão da coluna session_user . (É uma pseudo-variável, não uma chamada de função).

Se você quiser evitar que um usuário o substitua, certifique-se também de GRANT gravar as permissões na tabela por coluna, não na tabela como um todo e verifique se o usuário em operação regular não é o dono da mesa.

Ou alternadamente, tenha um acionador BEFORE INSERT OR UPDATE que defina NEW.the_column := session_user .

    
por 26.10.2017 / 08:33

Tags