Search Postgresql Archives

Re: Identity columns, DEFAULT keyword and multi-row inserts

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

 



Patrick FICHE schrieb am 10.12.2019 um 08:56:
>> -----Original Message-----
>> From: Thomas Kellerer <spam_eater@xxxxxxx> 
>> 
>> assume the following table:
>> 
>>     create table test 
>>     (
>>       id integer not null  generated always as identity,
>>       data integer not null 
>>     );
>> 
>> However, a multi-row insert like the following:
>> 
>>     insert into test (id, data)
>>     values 
>>       (default,1),
>>       (default,2);
>> 
>> fails with: 
>> 
>>     ERROR: cannot insert into column "id"
>>       Detail: Column "id" is an identity column defined as GENERATED ALWAYS.
>>       Hint: Use OVERRIDING SYSTEM VALUE to override.
>> 
>> 
>> My question is: 
>> 
>> * If DEFAULT is not allowed for identity columns, then why does the single-row insert work? 
>> * If DEFAULT _is_ allowed, then why does the multi-row insert fail? 
>
>
> I agree that it does not seem very consistent.
>
> But is there any specific reason why are you using DEFAULT ?
> 
> If you want / have to specify DEFAULT, then you should probably
> create your identity as "generated by default".
I don't really need (or use) it, I just stumbled upon this: https://stackoverflow.com/questions/59261048

And I think if the single row insert is allowed the multi-row should be as well. 

Not sure if this is a bug - and if it is, which one is the bug: the failing statement or the working one?




 
 






[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux