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

Autoinkrementacja klucza podstawowego PostgreSQL 9.1

serial jest mniej więcej typem kolumny, czyli integer serial jest jak powiedzenie text text , po prostu powiedz serial :

CREATE TABLE IF NOT EXISTS "category" (
  "id" SERIAL PRIMARY KEY,
  "name" varchar(30) DEFAULT NULL
);

Jeśli chcesz sam utworzyć sekwencję, chcesz ustawić domyślną wartość id następną wartość w sekwencji, a to oznacza powiedzenie default nextval('your_seq') :

CREATE SEQUENCE your_seq;
CREATE TABLE IF NOT EXISTS "category" (
  "id" integer PRIMARY KEY default nextval('your_seq'),
  "name" varchar(30) DEFAULT NULL
);

Aby zasymulować zwykły serial zachowanie, będziesz także chciał, aby sekwencja była własnością tabeli:

alter sequence your_seq owned by category.id;

Zapoznanie się z Typami szeregowymi część instrukcji może być owocna.

Zalecam również, aby nie cytować podwójnie nazw tabel i kolumn, chyba że jest to konieczne. PostgreSQL złoży twoje identyfikatory do małych liter, więc id i "id" będzie to samo, ale niepotrzebne cytowanie jest złym nawykiem, który może łatwo doprowadzić do ogromnego bałaganu w cytatach wszędzie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Strojenie wydajności Railsów na potrzeby produkcji?

  2. Jak dostroić aplikację Ruby on Rails działającą na Heroku, która korzysta z poziomu produkcyjnego Heroku Postgres?

  3. Omiń unikalne ograniczenia Sequelize w skojarzeniach należy do wielu

  4. nie można zapisywać do pliku dziennika pg_upgrade_internal.log podczas aktualizacji z Postgresql 9.1 do 9.3

  5. Żółw ORM dla Pythona nie zwraca relacji encji (Pyndantic, FastAPI)