it-swarm.it

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

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?

15
Jonas

due opzioni: utilizzare il "tipo di dati" SERIAL 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 *;
17
Frank Heikens

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. enter image description here

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

enter image description here Assicurati che il nome della sequenza sia corretto qui. Questo è tutto e l'incremento automatico dovrebbe funzionare.

15
toing_toing