Colonne di identità - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Colonne di identità

Importante

Quando si utilizzano le colonne di identità, il valore della cache deve essere considerato attentamente. Per ulteriori informazioni, consulta il callout importante nella CREATE SEQUENCE pagina.

Per indicazioni su come utilizzare al meglio le colonne di identità in base ai modelli di carico di lavoro, consulta. Utilizzo di sequenze e colonne di identità

Una colonna di identità è una colonna speciale generata automaticamente da una sequenza implicita. Può essere usata per generare valori chiave. Per creare una colonna di identità, usa la GENERATED ... AS IDENTITY clausola inCREATE TABLE, ad esempio:

CREATE TABLE people ( id bigint GENERATED ALWAYS AS IDENTITY (CACHE 70000), ... );

o in alternativa:

CREATE TABLE people ( id bigint GENERATED BY DEFAULT AS IDENTITY (CACHE 70000), ... );

Per ulteriori dettagli, consulta CREATE TABLE.

Se un INSERT comando viene eseguito sulla tabella con la colonna identity e non viene specificato esplicitamente alcun valore per la colonna identity, viene inserito un valore generato dalla sequenza implicita. Ad esempio, con le definizioni precedenti e assumendo colonne aggiuntive appropriate, scrivi:

INSERT INTO people (name, address) VALUES ('A', 'foo'); INSERT INTO people (name, address) VALUES ('B', 'bar');

genererebbe valori per la id colonna a partire da 1 e produrrebbe i seguenti dati della tabella:

id | name | address ----+------+--------- 1 | A | foo 2 | B | bar

In alternativa, la parola chiave DEFAULT può essere specificata al posto di un valore per richiedere esplicitamente il valore generato dalla sequenza:

INSERT INTO people (id, name, address) VALUES (DEFAULT, 'C', 'baz');

Analogamente, la parola chiave DEFAULT può essere utilizzata nei comandi. UPDATE

Pertanto, in molti modi, una colonna di identità si comporta come una colonna con un valore predefinito.

Le clausole ALWAYS e BY DEFAULT la definizione della colonna determinano la modalità di gestione esplicita dei valori e dei comandi specificati dall'utente. INSERT UPDATE In un INSERT comando, se ALWAYS è selezionato, un valore specificato dall'utente viene accettato solo se l'istruzione lo specifica. INSERT OVERRIDING SYSTEM VALUE Se BY DEFAULT è selezionato, il valore specificato dall'utente ha la precedenza. Pertanto, l'utilizzo BY DEFAULT determina un comportamento più simile ai valori predefiniti, in cui il valore predefinito può essere sostituito da un valore esplicito, mentre ALWAYS fornisce una maggiore protezione contro l'inserimento accidentale di un valore esplicito.

Il tipo di dati di una colonna di identità deve essere uno dei tipi di dati supportati dalle sequenze. Consultare CREATE SEQUENCE. Le proprietà della sequenza associata possono essere specificate durante la creazione di una colonna di identità (vediCREATE TABLE) o modificate in seguito (vediALTER TABLE).

Una colonna di identità viene contrassegnata automaticamente comeNOT NULL. Una colonna di identità, tuttavia, non garantisce l'unicità. (Una sequenza normalmente restituisce valori univoci, ma una sequenza può essere reimpostata o i valori possono essere inseriti manualmente nella colonna dell'identità, come discusso in precedenza.) L'unicità dovrebbe essere applicata utilizzando un vincolo PRIMARY KEY orUNIQUE.