PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zastąp sekwencję szeregową w PostgreSql za pomocą Entity Framework (C#)

Należy zresetować sekwencję w bazie danych przed jakimkolwiek wstawieniem przy użyciu wartości generowanych automatycznie. W dużym stopniu zależy od tabeli DDL. Istnieją dwa przykłady najczęściej używanych autogenów ID:

/*
-- Be careful with these 3 lines if you already have such objects in the your DB 
drop table if exists t1;
drop table if exists t2;
drop sequence if exists seq_t2_id;
*/

-- Using serial type for ID
create table t1 (t1_id serial, t1_name char varying);
insert into t1 (t1_id, t1_name) values (22, 'aaa');
select setval(pg_get_serial_sequence('t1', 't1_id'), (select max(t1_id) from t1)); -- Reset serial value
insert into t1 (t1_name) values ('bbb');
select * from t1;

-- Using sequence to generate IDs
create sequence seq_t2_id;
create table t2(t2_id bigint default nextval('seq_t2_id'), t2_name char varying);
insert into t2(t2_id, t2_name) values (22, 'aaa');
select setval('seq_t2_id', (select max(t2_id) from t2)); -- Update sequence
insert into t2 (t2_name) values ('bbb');
select * from t2;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlaj najnowsze wiadomości z tabeli wiadomości, grupuj według użytkownika

  2. Micronaut nie łączy się z db w YML

  3. Uzyskaj tylko najnowsze dane z ostatniego tygodnia i zsumuj jakąś kolumnę

  4. Oblicz procenty z SUM() w tym samym zapytaniu SELECT sql

  5. Generuj serie interwałów tygodniowych dla danego miesiąca