Re: creating column content from entry values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 21 February 2008 19:17, Tom Lane wrote:
> David Bear <david.bear@xxxxxxx> 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.

Thanks for your kind response. I guess I didn't give enough information to 
have anyone give me a complete solution. Your questions below help me a 
little more and I will attempt to outline my use case.

> Do you want it to be purely read-only and always equal to the function
> on the current values of the other columns? 

Yes, I want it to be purely read only. The purpose of this is to generate 
a 'canonical string' based upon the input of some values. However, I do not 
yet know what the cononical form of the string would be. So I wanted to 
abstract it into a function. 

> 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?  

I do not ever want it to change. There will never be updates to the other 
columns in the tuple.

> 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?

I don' t thing the function will be expensive. It will be mostly string 
slicing, casing, etc. I would rather have the function that does it 
associated with the data base rather than code that generates and insert 
statement.

>
> 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.

Okay, no I think what I am asking for as an insert trigger. The value must be 
stored as the table is a lookup table to control entry in other tables. Thus, 
the field that is generated will be a foreign key for other attributes in 
other relations.


>
> 			regards, tom lane

-- 

David Bear
College of Public Programs/ASU
411 N Central, Phoenix, AZ 85004

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

                http://www.postgresql.org/about/donate

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux