Re: does postgresql 10 have something similar to sql server's setidentity_insert

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Re: does postgresql 10 have something similar to sql server's setidentity_insert
Дата
Msg-id per114$bif$1@blaine.gmane.org
обсуждение исходный текст
Ответ на does postgresql 10 have something similar to sql server's set identity_insert  (john snow <ofbizfanster@gmail.com>)
Список pgsql-novice
john snow schrieb am 31.05.2018 um 11:15:
> to temporarily allow explicit values to be inserted into the identity
> column of a table to facilitate the generation of test data from
> application code?
> 
> using sql, i know it's possible to issue INSERTs with OVERRIDING
> SYSTEM VALUE clause to fill identity columns with user-specified
> values. but i'm using an ORM (object-relation mapper) Framework from
> Microsoft (Entity Framework Core 2.1)  and a C# test data generator
> library, and i'm generating "data aggregates" that have foreign key
> relationships so it would be a great convenience if I could save test
> data with known primary and foreign key values to the database as
> this would make it easier for me to make assertions about my data.
> 
> ideally, i'm looking for something like this:
> 
> myDbContext.Database.ExecuteSqlCommand("...");  //ask postgresql to allow explicit id values for inserts from here
on
> var testData = CreateTestData();
> myDbContext.MyEntity.AddRange(testData);
> myDbContext.SaveChanges();
> 

If you use a serial or identity column you can just insert your rows.
There is no need to "turn on" (or off) anything.

But you _have_ to synchronize the underlying sequence after you do that:

    select setval(pg_get_serial_sequence('the_table', 'id'), (select max(id) from the_table));

Thomas









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

Предыдущее
От: Laurenz Albe
Дата:
Сообщение: Re: does postgresql 10 have something similar to sql server's setidentity_insert
Следующее
От: Peter Neave
Дата:
Сообщение: Postgres Migration from Postgres 9.0 on Windows to Postgres 10.0 on Linux