Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nsPHN-0004Ms-Ms for pgsql-novice@arkaria.postgresql.org; Sat, 21 May 2022 13:36:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nsPHL-0003lo-FE for pgsql-novice@arkaria.postgresql.org; Sat, 21 May 2022 13:36:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nsPHL-0003lf-6x for pgsql-novice@lists.postgresql.org; Sat, 21 May 2022 13:36:23 +0000 Received: from mail.i-mark.de ([188.138.104.222]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nsPHF-00009x-4p for pgsql-novice@lists.postgresql.org; Sat, 21 May 2022 13:36:22 +0000 Received: from [192.168.178.20] (unknown [185.38.49.17]) by mail.i-mark.de (Postfix) with ESMTPSA id 0CF3215802AF for ; Sat, 21 May 2022 15:36:11 +0200 (CEST) Authentication-Results: loft7616.startdedicated.de; spf=pass (sender IP is 185.38.49.17) smtp.mailfrom=andreas@a-kretschmer.de smtp.helo=[192.168.178.20] Received-SPF: pass (loft7616.startdedicated.de: connection is authenticated) Message-ID: <010d77a8-4338-5dc0-d055-e25782ef825c@a-kretschmer.de> Date: Sat, 21 May 2022 15:36:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: Writing my first trigger Content-Language: en-US To: pgsql-novice@lists.postgresql.org References: <81b6ada5-7274-b260-2a59-19c6e450fb30@a-kretschmer.de> From: Andreas Kretschmer In-Reply-To: <81b6ada5-7274-b260-2a59-19c6e450fb30@a-kretschmer.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Am 20.05.22 um 17:06 schrieb Andreas Kretschmer: > > your table doesn't contain the field "updatedA". I would suggest to > calculate the fullName at select-time and not via TRIGGER. other solution, generated colums: postgres=# create table employee (firstname text, prefered_firstname text, lastname text, fullname text generated always as (coalesce(prefered_firstname,firstname) || ' ' || lastname) stored); CREATE TABLE postgres=# postgres=# postgres=# insert into employee values ('max',null, 'mueller'); INSERT 0 1 postgres=# insert into employee values ('susann','susi', 'scholz'); INSERT 0 1 postgres=# select * from employee ;  firstname | prefered_firstname | lastname |  fullname -----------+--------------------+----------+-------------  max       |                    | mueller  | max mueller  susann    | susi               | scholz   | susi scholz (2 rows) postgres=# Regards, Andreas -- 2ndQuadrant, an EDB company www.2ndQuadrant.com / www.enterprisedb.com