Jak określić, że kolumna powinna być automatycznie zwiększana w pgAdmin?

15

Zacząłem uczyć się pgAdmin III do zarządzania bazą danych PostgreSQL. Ale nie była to łatwa w użyciu aplikacja.

Jeśli utworzę lub utworzyłem tabelę przy pomocy pgAdmin III, jak mogę dodać funkcję „automatycznego zwiększania” do identyfikatora kolumny o typie całkowitym?

Jonas
źródło

Odpowiedzi:

17

dwie opcje: Użyj „typ danych” SERIAL lub utwórz sekwencję i użyj tej sekwencji jako wartości domyślnej dla liczby całkowitej:

CREATE SEQUENCE your_seq;
CREATE TABLE foo(
  id int default nextval('your_seq'::regclass),
  other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;
Frank Heikens
źródło
1
Ta odpowiedź może zostać zaktualizowana, tak aby obejmowała GENERATED BY DEFAULT AS IDENTITYwprowadzenie Postgres> = 10.
Madbreaks
15

Jeśli chcesz to zrobić w PGAdmin, jest to o wiele łatwiejsze niż użycie wiersza poleceń. Wydaje się, że w PostgreSQL, aby dodać automatyczny przyrost do kolumny, najpierw musimy utworzyć sekwencję automatycznego przyrostu i dodać ją do wymaganej kolumny. Podobało mi się

1) Najpierw musisz upewnić się, że jest klucz podstawowy do twojego stołu. Zachowaj także typ danych klucza podstawowego w bigint lub smallint. (Użyłem biginta, nie mogłem znaleźć typu danych o nazwie serial, jak wspomniano w innych odpowiedziach gdzie indziej)

2) Następnie dodaj sekwencję, klikając prawym przyciskiem myszy sekwencję-> dodaj nową sekwencję . Jeśli w tabeli nie ma danych, pozostaw tę sekwencję bez zmian, nie wprowadzaj żadnych zmian. Po prostu to zapisz. Jeśli istnieją dane, dodaj ostatnią lub najwyższą wartość w kolumnie klucza podstawowego do bieżącej wartości w zakładce Definicje, jak pokazano poniżej. wprowadź opis zdjęcia tutaj

3) Na koniec dodaj linię nextval('your_sequence_name'::regclass)do wartości domyślnej w kluczu podstawowym, jak pokazano poniżej.

wprowadź opis zdjęcia tutaj Upewnij się, że nazwa sekwencji jest tutaj poprawna. To wszystko i automatyczny przyrost powinien działać.

toing_toing
źródło
4
Nie zgadzam się na temat „łatwiej w PgAdmin”. Myślisz, że klikanie jest łatwiejsze niż zwykła kolumna SERIAL?
ypercubeᵀᴹ
1
Czy powinienem powiedzieć łatwiej dla tych, którzy są przyzwyczajeni do GUI i jeśli nie znasz linii poleceń. :)
toing_toing