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

Поиск
Список
Период
Сортировка
От Patrick FICHE
Тема RE: Identity columns, DEFAULT keyword and multi-row inserts
Дата
Msg-id DB6PR0501MB2359C8C9E765DFF4DAA48CBCEF5B0@DB6PR0501MB2359.eurprd05.prod.outlook.com
обсуждение исходный текст
Ответ на Identity columns, DEFAULT keyword and multi-row inserts  (Thomas Kellerer <spam_eater@gmx.net>)
Ответы Re: Identity columns, DEFAULT keyword and multi-row inserts  (Thomas Kellerer <spam_eater@gmx.net>)
Список pgsql-general
Hi Thomas,

I agree that it does not seem very consistent.
But is there any specific reason why are you using DEFAULT ?
Why don't you simply execute :
    insert into test (data)
    values 
      (1),
      (2);

If you want / have to specify DEFAULT, then you should probably create your identity as "generated by default".

Regards,

Patrick Fiche
Database Engineer, Aqsacom Sas.
c. 33 6 82 80 69 96 



-----Original Message-----
From: Thomas Kellerer <spam_eater@gmx.net> 
Sent: Tuesday, December 10, 2019 8:42 AM
To: pgsql-general@lists.postgresql.org
Subject: Identity columns, DEFAULT keyword and multi-row inserts

Hello,

assume the following table:

    create table test 
    (
      id integer not null  generated always as identity,
      data integer not null 
    );

The following insert works fine:

    insert into test (id, data)
    values (default,1);


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? 

The above happens with Postgres 10,11 and 12

Regards
Thomas



В списке pgsql-general по дате отправления:

Предыдущее
От: Dan shmidt
Дата:
Сообщение: Logical Replication of Multiple Schema Versions
Следующее
От: Thomas Kellerer
Дата:
Сообщение: Re: Identity columns, DEFAULT keyword and multi-row inserts