sql >> Databasteknik >  >> RDS >> PostgreSQL

pg_dump seriella datatypproblem

Från dokument :

Datatyperna smallserial , serial och bigserial är inte sanna typer, utan bara en notationsbekvämlighet för att skapa unika identifierarkolumner (liknande AUTO_INCREMENT-egenskapen som stöds av vissa andra databaser). I den nuvarande implementeringen specificerar du:

CREATE TABLE tablename (
    colname SERIAL
);

motsvarar att ange:

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;

Således har vi skapat en heltalskolumn och ordnat så att dess standardvärden tilldelas från en sekvensgenerator. En NOT NULL-begränsning tillämpas för att säkerställa att ett nollvärde inte kan infogas. (I de flesta fall skulle du också vilja bifoga en UNIK eller PRIMÄR KEY-begränsning för att förhindra att duplicerade värden infogas av misstag, men detta är inte automatiskt.) Slutligen markeras sekvensen som "ägd av" kolumnen, så att den kommer att tas bort om kolumnen eller tabellen tas bort.



  1. PDO bindColumn och PDO::FETCH_BOUND -- obligatoriskt eller valfritt?

  2. hur man infogar flera arrayer i databasen med PHP

  3. Topp 30 mest användbara Concurrent Manager-frågor

  4. Hur infogar man en CSV-fildata i MYSQL med Python effektivt?