Come faccio a specificare che una colonna deve essere auto-incrementata in pgAdmin?


14

Ho iniziato a imparare pgAdmin III per gestire un database PostgreSQL. Ma non era un'applicazione facile da usare.

Se creo o ho creato una tabella con pgAdmin III, come posso aggiungere la funzionalità di "incremento automatico" su un ID colonna con tipo intero?

Risposte:


17

due opzioni: utilizzare il SERIAL "tipo di dati" o creare una sequenza e utilizzare questa sequenza come valore predefinito per il numero intero:

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 *;

1
Questa risposta potrebbe essere aggiornata per includere GENERATED BY DEFAULT AS IDENTITYintrodotta con Postgres> = 10.
Madbreaks,

15

Se vuoi farlo in PGAdmin, è molto più facile che usare la riga di comando. Sembra che in PostgreSQL, per aggiungere un incremento automatico a una colonna, dobbiamo prima creare una sequenza di incremento automatico e aggiungerla alla colonna richiesta. Mi è piaciuto

1) Innanzitutto devi assicurarti che ci sia una chiave primaria per la tua tabella. Mantenere anche il tipo di dati della chiave primaria in bigint o smallint. (Ho usato bigint, non sono riuscito a trovare un tipo di dati chiamato seriale come menzionato in altre risposte altrove)

2) Quindi aggiungere una sequenza facendo clic con il tasto destro su sequenza-> aggiungi nuova sequenza . Se non ci sono dati nella tabella, lasciare la sequenza così com'è, non apportare alcuna modifica. Basta salvarlo. Se sono presenti dati esistenti, aggiungere l'ultimo o il valore più alto nella colonna chiave primaria al valore Corrente nella scheda Definizioni come mostrato di seguito. inserisci qui la descrizione dell'immagine

3) Infine, aggiungi la riga nextval('your_sequence_name'::regclass)al valore predefinito nella chiave primaria come mostrato di seguito.

inserisci qui la descrizione dell'immagine Assicurati che il nome della sequenza sia corretto qui. Questo è tutto e l'incremento automatico dovrebbe funzionare.


4
Non sono d'accordo sul "facile in PgAdmin". Pensi che passare attraverso i clic sia più semplice del semplice creare una colonna SERIAL?
ypercubeᵀᴹ

1
Devo dirlo più facilmente per coloro che sono abituati alle GUI e se non si ha familiarità con le righe di comando. :)
toing_toing
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.