On Fri, Sep 23, 2022 at 4:42 PM Steve Baldwin <steve.bald...@gmail.com>
wrote:

> You need to prefix the rhs column(s) with 'excluded.'. For example:
>
> on conflict (company_name) do update set company_name =
> concat(excluded.company_name,'++',excluded.string_company_id);
>
> On Sat, Sep 24, 2022 at 7:28 AM Barry Kimelman <blkimel...@gmail.com>
> wrote:
>
>>
>> I have not been able to get the "ON CONFLICT" clause to work
>> I am using psql 14.4 on ubuntu
>>
>> Given the following table definition
>>
>> CREATE TABLE my_companies (
>>   company_id SERIAL NOT NULL PRIMARY KEY,
>>   second_id INTEGER NOT NULL REFERENCES big_list(second_id),
>>   string_company_id TEXT NOT NULL,
>>   company_name TEXT NOT NULL,
>>   person_name TEXT NOT NULL
>> )
>>   INHERITS ( _audit_table, _delete_table );
>>
>> and the following constraints
>>
>> CREATE UNIQUE INDEX my_companies_id_unique ON
>> my_companies(string_company_id) WHERE delete_timestamp IS NULL;
>> CREATE UNIQUE INDEX my_companies_company_name_unique ON
>> my_companies(company_name) WHERE delete_timestamp IS NULL;
>>
>> I issued the following sql insert in an attempt to use "on conflict" to
>> update the
>> duplicate column name
>>
>> insert into my_companies
>> (second_id,string_company_id,company_name,person_name)
>> values (1,'66','widgets','seller-toto')
>> on conflict (company_name) do update set company_name =
>> concat(company_name,'++',string_company_id);
>>
>> In this example a record with a company name of 'widgets' already exists
>> and will
>> result in an constraint violation
>>
>> when I ran my sql statement I received the following error message
>>
>> bkimelman=# \i insert-companies-1c.sql
>> psql:insert-companies-1c.sql:3: ERROR:  column reference "company_name"
>> is ambiguous
>> LINE 3: ...company_name) do update set company_name = concat(company_na...
>>
>> I tried fully qualifying the column names in the concat() function call,
>> but all that did was get me a different error message
>>
>> What would be the proper format for the "on conflict" clause ?
>>
>

Thanks for the response. But when I "prefixed" the columns with "excluded"
I got a different error message

ERROR: there is no unique or exclusion constraint matching the ON CONFLICT
specification

Reply via email to