From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-novice(at)postgresql(dot)org |
Subject: | Re: does postgresql 10 have something similar to sql server's set identity_insert |
Date: | 2018-06-01 08:46:32 |
Message-ID: | per114$bif$1@blaine.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Neave | 2018-06-08 05:55:26 | Postgres Migration from Postgres 9.0 on Windows to Postgres 10.0 on Linux |
Previous Message | Laurenz Albe | 2018-06-01 08:27:29 | Re: does postgresql 10 have something similar to sql server's set identity_insert |