In questa sezione capiremo il funzionamento di Seriale PostgreSQL pseudo-tipo, che ci permette di definire colonne con incremento automatico nelle tabelle. E vediamo anche esempi del Pseudotipo seriale PostgreSQL .
Cos'è lo pseudotipo seriale PostgreSQL?
In PostgreSQL abbiamo un particolare tipo di generatore di oggetti di database noto come Seriale , a cui è abituato creare una sequenza di numeri interi che sono spesso usati come a Chiave primaria in un tavolo.
La sequenza può essere generata con l'aiuto di Pseudotipo SERIALE , mentre stiamo creando una nuova tabella, come possiamo vedere nel comando seguente:
CREATE TABLE table_name( ID SERIAL );
PostgreSQL fa quanto segue se forniamo il file Pseudotipo SERIALE al ID colonna:
- Innanzitutto, PostgreSQL creerà un oggetto sequenza e quindi stabilirà il valore successivo creato dalla sequenza come valore predefinito della particolare colonna.
- Successivamente, PostgreSQL migliorerà a Vincolo NOT NULL al colonna ID poiché una sequenza produce sempre un numero intero che è a valore non nullo .
- Alla fine, PostgreSQL fornirà al file il proprietario della sequenza colonna ID; come output, l'oggetto sequenza viene rimosso quando la tabella o colonna ID viene lasciato cadere.
Nota: possiamo utilizzare entrambi i comandi per specificare lo pseudotipo Serial poiché entrambi i comandi seguenti sono simili tra loro.
CREATE TABLE table_name( ID SERIAL );
CREATE SEQUENCE table_name_ID_seq; CREATE TABLE table_name ( ID integer NOT NULL DEFAULT nextval('table_name_ID_seq') ); ALTER SEQUENCE table_name_ID_seq OWNED BY table_name.ID;
IL Pseudotipo seriale PostgreSQL è stato classificato in tre tipologie che sono le seguenti:
Abbiamo la seguente tabella, che contiene tutti i Pseudotipo seriale specifica supportata da PostgreSQL:
Nome | Dimensioni di archiviazione | Allineare |
---|---|---|
PICCOLOSERIALE | 2 byte | 1-32767 |
SERIALE | 4 byte | 1 al 2147483647 |
GRANDE SERIALE | 8 byte | 1 al 9223372036854775807 |
Sintassi dello pseudo-tipo seriale PostgreSQL
La sintassi di PostgreSQL Pseudotipo seriale come segue:
variable_name SERIAL
Esempi di tipo PostgreSQL SERIAL
Vediamo diversi esempi per capire come funziona il Lo pseudotipo seriale PostgreSQL funziona .
Nota: possiamo definire il vincolo PRIMARY KEY per la colonna SERIAL perché il tipo SERIAL non crea indirettamente un indice sulla colonna né rende la colonna come colonna di chiave primaria.
Stiamo creando una nuova tabella con l'aiuto del comando CREATE e inserendo alcuni valori utilizzando il comando INSERT.
Nell'esempio seguente, stiamo utilizzando il file CREARE comando per generare a Automobili tabella nel Banca dati dell'organizzazione:
CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL );
Produzione
IL Automobili la tabella è stata creata con successo dopo aver eseguito i comandi precedenti, come mostrato nello screenshot seguente:
Una volta che Automobili La tabella è stata generata, possiamo inserirvi alcuni valori utilizzando il comando INSERT. E possiamo usare il PREDEFINITO parola chiave nel comando INSERT o omettere il nome della colonna (ID_auto) .
INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera');
Produzione
Dopo aver implementato il comando precedente, riceveremo il seguente messaggio e il valore è stato inserito con successo nel file Automobili tavolo:
O Usando il Parola chiave PREDEFINITA con il nome della colonna (ID_auto):
INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8');
Produzione
Implementando il comando precedente, riceveremo il seguente messaggio; il valore è stato inserito con successo nel file Automobili tavolo:
Come possiamo vedere nello screenshot qui sopra, PostgreSQL ha inserito due righe nel file Automobili tavolo con il Car_id i valori delle colonne sono 1 e 2 .
Dopo aver creato e inserito il file Automobili i valori della tabella, useremo il file SELEZIONARE il comando restituisce tutte le righe del file Automobili tavolo:
SELECT * FROM Cars;
Produzione
Dopo aver implementato con successo il comando precedente, otterremo il seguente risultato:
Possiamo usare il pg_get_serial_sequence() funzione per ottenere il nome della sequenza di a SERIALE colonna in una tabella specificata, come possiamo vedere nella sintassi seguente:
pg_get_serial_sequence('table_name','column_name')
Prendere il valore corrente creata dalla sequenza, possiamo passare il nome della sequenza alla funzione currval().
Nell'esempio seguente, abbiamo utilizzato la curva() funzione per restituire il valore corrente prodotto da Automobili tavolo Car_id_seq oggetto:
SELECT currval(pg_get_serial_sequence('Cars', 'car_id'));
Produzione
Dopo aver implementato il comando precedente, otterremo l'output seguente:
Possiamo usare il RITORNO Car_id clausola nel comando INSERT se vogliamo ottenere i valori creati dalla sequenza quando inseriamo una nuova riga nella tabella.
Il comando seguente viene utilizzato per inserire una nuova riga nel file Automobili tabella e restituisce i record generati per il Car_id colonna.
INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id;
Produzione
Eseguendo il comando precedente, otterremo il seguente output, che restituisce il file Car_id COME 3 :
Nota:
- Come abbiamo capito sopra, il generatore di sequenze l'operazione non è sicura per le transazioni, il che implica che ogni utente otterrà un valore diverso se due database paralleli le connessioni tentano di ottenere il valore successivo da una sequenza.
- E il numero di sequenza di quell'utente sarà inattivo e creerà un intervallo nella sequenza se un utente può ripristinare la transazione .
Esempio2
Vediamo un altro esempio per imparare il Pseudotipo seriale in dettaglio.
Quindi, creeremo un'altra nuova tabella come a Verdure tabella con l'aiuto del comando CREATE in una tabella simile Banca dati questo è Organizzazione con il Veg_id colonna come SERIALE pseudo-tipo.
CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL );
Produzione
IL Verdure la tabella è stata creata con successo dopo aver eseguito i comandi precedenti, come mostrato nello screenshot seguente:
Una volta che Verdure è stata generata la tabella, inseriremo alcuni valori al suo interno utilizzando il comando INSERT e ometteremo il file Verdure_id colonna come mostrato nel comando seguente:
INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring');
Produzione
Riceveremo il seguente messaggio durante l'implementazione del comando precedente: il valore è stato inserito con successo nel file Verdure tavolo.
Oppure possiamo anche usare il file Predefinito parola chiave e utilizza il file Veggie_id colonna come mostrato nel seguente comando:
INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter');
Produzione
Dopo aver eseguito il comando precedente, otterremo il messaggio seguente, che dice che possiamo usare il file Parola chiave predefinita o il ignorare il nome della colonna , otterremo un output simile:
differenza tra albero binario e albero di ricerca binario
Pertanto, aggiungeremo altri valori a Automobili tabella con l'aiuto di seguire il comando:
INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall');
Produzione
Dopo aver eseguito il comando precedente, otterremo il messaggio seguente, che mostra che il valore è stato inserito con successo nel file Verdure tavolo.
Dopo aver creato e inserito il file Verdure i valori della tabella, useremo il file SELEZIONARE comando per restituire tutte le righe del file Verdure tavolo:
SELECT * FROM Vegetables;
Produzione
Dopo aver implementato con successo il comando precedente, otterremo l'output seguente:
Panoramica
Nel Pseudotipo seriale PostgreSQL sezione, abbiamo imparato la funzionalità di pseudo-tipo seriale, che viene utilizzata principalmente per creare un file aumenti automatici valore della colonna per una tabella particolare.