Re: creating column content from entry values - Mailing list pgsql-admin

From Tom Lane
Subject Re: creating column content from entry values
Date
Msg-id 20500.1203646658@sss.pgh.pa.us
Whole thread Raw
In response to creating column content from entry values  (David Bear <david.bear@asu.edu>)
Responses Re: creating column content from entry values  (David Bear <david.bear@asu.edu>)
List pgsql-admin
David Bear <david.bear@asu.edu> writes:
> Breifly, I want to do an insert where the values for three of the attributes
> are combined via a function and make up the value for the fourth attribute.

Well, there's more than one way to do it.  What you didn't tell us is
just how tightly you want to bind column 4 to be func-of-cols-1-2-3.
Do you want it to be purely read-only and always equal to the function
on the current values of the other columns?  Do you want to force it
to be that way on initial insertion of the row, but subsequent updates
could allow the columns to diverge?  Do you merely want it as a default
that could be overridden during the insert?  Also, is the function
expensive enough that you really want to precompute it at insert time
and store the output; or maybe it should be just a "virtual" column
where the function is computed on demand during readout?

Depending on what you think about these questions, you might choose to
not store column 4 physically at all, but just have it be part of a view
wherein the function is computed on-the-fly.  Or you could use an ON
INSERT and/or ON UPDATE trigger, perhaps with different degrees of
aggressiveness about whether it overrides a pre-supplied value for
column 4.

            regards, tom lane

pgsql-admin by date:

Previous
From: David Bear
Date:
Subject: creating column content from entry values
Next
From: Wolfgang Rodriguez
Date:
Subject: Clave usuario postgres