PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Автоматично увеличаване на първичния ключ на PostgreSQL 9.1

serial е, повече или по-малко, тип колона, така че integer serial е като да кажете text text , просто кажете serial :

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

Ако искате сами да създадете последователността, тогава искате да направите стойността по подразбиране на id следващата стойност в последователността и това означава да кажете 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
);

За симулиране на обичайния serial поведение, което също ще искате да направите последователността, притежавана от таблицата:

alter sequence your_seq owned by category.id;

Четене на серийни типове раздел от ръководството може да е полезен.

Също така бих препоръчал да не поставяте двойни кавички в имената на таблиците и колоните, освен ако не се налага. PostgreSQL ще сгъне вашите идентификатори в малки букви, така че id и "id" ще бъде същото, но ненужното цитиране е лош навик, който лесно може да доведе до голяма бъркотия от цитати навсякъде.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Приложението Django в контейнера на Docker не може да намери postgres

  2. Трябва да присвоя всички дейности в SQL на един идентификатор, но в момента всяка дейност има три идентификатора

  3. PostgreSQL ANSI, Python SQL, кодек utf-8' не може да декодира байт 0xa0

  4. Как мога да променя съществуващата колона като идентичност в PostgreSQL 11.1

  5. Насочване към конкретни стойности от JSON API и вмъкване в Postgresql, използвайки Python