Re: does postgresql 10 have something similar to sql server's setidentity_insert - Mailing list pgsql-novice

From Thomas Kellerer
Subject Re: does postgresql 10 have something similar to sql server's setidentity_insert
Date
Msg-id per114$bif$1@blaine.gmane.org
Whole thread Raw
In response to does postgresql 10 have something similar to sql server's set identity_insert  (john snow <ofbizfanster@gmail.com>)
List 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 by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: does postgresql 10 have something similar to sql server's setidentity_insert
Next
From: Peter Neave
Date:
Subject: Postgres Migration from Postgres 9.0 on Windows to Postgres 10.0 on Linux