sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL 9.1 primaire sleutel auto-increment

serial is min of meer een kolomtype dus zeg integer serial is hetzelfde als text text saying zeggen , zeg gewoon serial :

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

Als u de reeks zelf wilt maken, wilt u de standaardwaarde id . maken de volgende waarde in de reeks en dat betekent 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
);

Om de gebruikelijke serial te simuleren gedrag waarvan u ook de volgorde wilt maken die eigendom is van de tafel:

alter sequence your_seq owned by category.id;

Het lezen van de serietypen gedeelte van de handleiding kan nuttig zijn.

Ik raad u ook aan om uw tabel- en kolomnamen niet dubbel te citeren, tenzij het moet. PostgreSQL vouwt uw identifiers naar kleine letters, dus id en "id" zal hetzelfde zijn, maar onnodig citeren is een slechte gewoonte die gemakkelijk kan leiden tot een grote warboel van citaten overal.



  1. Hoe sla ik de locatie van een afbeelding op in een database?

  2. Gereserveerd woord in kolomnaam - invoegen in MySQL

  3. Hoe kan ik een variabele gebruiken als tabelnaam in node-pg?

  4. Miljarden rijen ophalen van een externe server?