Re: Converting sql anywhere to postgres - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Converting sql anywhere to postgres
Date
Msg-id 8d88b119-a845-545b-e89c-aac6ba43261a@aklaver.com
Whole thread Raw
In response to Converting sql anywhere to postgres  (Russell Rose | Passfield Data Systems <russellrose@passfield.co.uk>)
List pgsql-general
On 8/15/23 08:04, Russell Rose | Passfield Data Systems wrote:
> Hi there
> 
> I am trying to convert a SQL Anywhere database to postgres. Within SQL 
> anywhere a field can have a default value of ‘last user’. This means 
> that when you perform an update on a table, if the field is not 
> explicitly set then the current user is used. So for instance if I have 
> a field called mod_user in a table, but when I do an update on the table 
> and do not set mod_user then SQL Anywhere sets the field to current_uer. 
> I have tried to replicate this using a postgres trigger in the before 
> update. However, if I do not set the value then it automatically picks 
> up the value that was already in the field. Is there a way to tell the 
> difference between me setting the value to the same as the previous 
> value and postgres automatically picking it up.

Not that I know of. In Postgres an UPDATE is essentially a DELETE of the 
OLD tuple and an INSERT of a new tuple. You cannot determine whether the 
same value in a given field for the OLD/NEW records was explicitly set 
the same or just carried over.

> 
> If the field myfield contains the word ‘me’. Can I tell the difference 
> between:
> 
> Update table1 set field1=’something’,myfield=’me’
> 
> And
> 
> Update table1 set field1=’something’
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




pgsql-general by date:

Previous
From: Albrecht Dreß
Date:
Subject: Re: PostgreSQL and GUI management
Next
From: Erik Wienhold
Date:
Subject: Re: Converting sql anywhere to postgres