sql >> Database teknologi >  >> RDS >> PostgreSQL

problemer med pg_dump seriel datatype

Fra dokumenter :

Datatyperne smallserial , serial og bigserial er ikke sande typer, men blot en notationsbekvemmelighed til at skabe unikke identifikatorkolonner (svarende til AUTO_INCREMENT-egenskaben, der understøttes af nogle andre databaser). I den nuværende implementering, specificering af:

CREATE TABLE tablename (
    colname SERIAL
);

svarer til at angive:

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

Vi har således oprettet en heltalskolonne og arrangeret, så dens standardværdier tildeles fra en sekvensgenerator. En NOT NULL-begrænsning anvendes for at sikre, at en null-værdi ikke kan indsættes. (I de fleste tilfælde vil du også ønske at vedhæfte en UNIK eller PRIMÆR NØGLE-begrænsning for at forhindre, at duplikerede værdier indsættes ved et uheld, men dette er ikke automatisk.) Til sidst markeres sekvensen som "ejet af" kolonnen, så den slettes, hvis kolonnen eller tabellen slettes.



  1. Hvordan ekskluderer jeg weekenddage i en SQL Server-forespørgsel?

  2. hvordan man sender parametre til trigger i Oracle

  3. LATERAL JOIN bruger ikke trigramindeks

  4. Sjovt med (columnstore) komprimering på et meget stort bord – del 2