sql >> Databáze >  >> RDS >> PostgreSQL

Automatické zvýšení primárního klíče PostgreSQL 9.1

serial je víceméně typ sloupce, který říká integer serial je jako říct text text , stačí říct serial :

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

Pokud chcete vytvořit sekvenci sami, pak chcete nastavit výchozí hodnotu id další hodnotu v sekvenci a to znamená říct 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
);

Chcete-li simulovat obvyklý serial chování, budete také chtít vytvořit sekvenci vlastněnou tabulkou:

alter sequence your_seq owned by category.id;

Čtení Sériové typy část příručky by mohla být plodná.

Také bych doporučil, abyste neuváděli dvojité uvozovky názvů tabulek a sloupců, pokud to není nutné. PostgreSQL složí vaše identifikátory na malá písmena, takže id a "id" bude to samé, ale zbytečné citování je zlozvyk, který může snadno vést k velkému nepořádku uvozovek všude.



  1. Přehled VACUUM Processing v PostgreSQL

  2. rails - chyba postgres:Důvod:Nekompatibilní verze knihovny:libpq.5.dylib vyžaduje verzi 1.0.0 nebo novější,

  3. Tabulka MySQL se z nějakého důvodu zvyšuje o 10

  4. Jak vytvořím migraci kolejnic pro odstranění/změnu přesnosti a měřítka v desítkové soustavě?