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

problémy se sériovým datovým typem pg_dump

Z dokumentů :

Datové typy smallserial , serial a bigserial nejsou pravdivé typy, ale pouze notační pohodlí pro vytváření sloupců jedinečných identifikátorů (podobně jako vlastnost AUTO_INCREMENT podporovaná některými jinými databázemi). V aktuální implementaci s uvedením:

CREATE TABLE tablename (
    colname SERIAL
);

je ekvivalentní specifikaci:

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;

Vytvořili jsme tedy celočíselný sloupec a zařídili, aby jeho výchozí hodnoty byly přiřazeny z generátoru sekvencí. Aplikuje se omezení NOT NULL, aby se zajistilo, že nebude možné vložit hodnotu null. (Ve většině případů byste také chtěli připojit omezení UNIQUE nebo PRIMARY KEY, abyste zabránili náhodnému vložení duplicitních hodnot, ale to není automatické.) Nakonec je sekvence označena jako „vlastněná“ sloupcem, takže bude zrušen, pokud bude sloupec nebo tabulka zrušena.



  1. Chyba kódování PHP při vytváření XML z databáze

  2. Speciální znaky se při exportu/importu MySQL ztratí

  3. Mysql 5.7 ERROR 3143 (42000):Neplatný výraz cesty JSON. Chyba je kolem pozice znaku 3

  4. Syntaxe pro vlastní líné vyhodnocení/zkratování parametrů funkcí