Database H2 - Alter

ALTER è un comando utilizzato per modificare la struttura della tabella aggiungendo diverse clausole al file altercomando. In base allo scenario, dobbiamo aggiungere la rispettiva clausola al comando alter. In questo capitolo, discuteremo vari scenari di alter command.

Alter Table Add

Alter Table Add è un comando utilizzato per aggiungere una nuova colonna a una tabella insieme al rispettivo tipo di dati. Questo comando esegue il commit della transazione in questa connessione.

Sintassi

Di seguito è riportata la sintassi generica del comando Alter Table Add.

ALTER TABLE [ IF EXISTS ] tableName ADD [ COLUMN ] 
{ [ IF NOT EXISTS ] columnDefinition [ { BEFORE | AFTER } columnName ] 
   | ( { columnDefinition } [,...] ) }

Esempio

In questo esempio, aggiungeremo una nuova colonna start_date al tavolo tutorials_tbl. Il tipo di dati per data_inizio è Data. Di seguito è riportata la query per aggiungere una nuova colonna.

ALTER TABLE tutorials_tbl ADD start_date DATE;

La query precedente produce il seguente output.

(6) rows effected

Modifica tabella Aggiungi vincolo

Alter table add constraint è un comando utilizzato per aggiungere diversi vincoli alla tabella come chiave primaria, chiave esterna, non null, ecc.

Gli indici richiesti vengono creati automaticamente se non esistono ancora. Non è possibile disabilitare il controllo del vincolo univoco. Questo comando salva una transazione aperta in questa connessione.

Sintassi

Di seguito è riportata la sintassi generica del comando Modifica vincolo di aggiunta della tabella.

ALTER TABLE [ IF EXISTS ] tableName ADD constraint [ CHECK | NOCHECK ]

Esempio

In questo esempio, aggiungiamo un vincolo di chiave primaria (tutorials_tbl_pk) all'ID colonna della tabella tutorials_tbl, utilizzando la seguente query.

ALTER TABLE tutorials_tbl ADD CONSTRAINT tutorials_tbl_pk PRIMARYKEY(id);

La query precedente produce il seguente output.

(6) row (s) effected

Modifica vincolo di rinomina tabella

Questo comando viene utilizzato per rinominare il nome del vincolo di una particolare tabella di relazione. Questo comando salva una transazione aperta in questa connessione.

Sintassi

Di seguito è riportata la sintassi generica del comando Alter Table Rename Constraint.

ALTER TABLE [ IF EXISTS ] tableName RENAME oldConstraintName TO newConstraintName

Durante l'utilizzo di questa sintassi, assicurarsi che il vecchio nome del vincolo esista con la rispettiva colonna.

Esempio

In questo esempio, cambieremo il nome del vincolo di chiave primaria della tabella tutorials_tbl a partire dal tutorials_tbl_pk per tutorials_tbl_pk_constraint. Di seguito è la domanda per farlo.

ALTER TABLE tutorials_tbl RENAME CONSTRAINT 
tutorials_tbl_pk TO tutorials_tbl_pk_constraint;

La query precedente produce il seguente output.

(1) row (s) effected

Modifica tabella Modifica colonna

Questo comando viene utilizzato per modificare la struttura e le proprietà della colonna di una particolare tabella. Modificare le proprietà significa modificare il tipo di dati di una colonna, rinominare una colonna, modificare il valore di identità o modificare la selettività.

Sintassi

Di seguito è riportata la sintassi generica del comando Alter Table Alter Column.

ALTER TABLE [ IF EXISTS ] tableName ALTER COLUMN columnName 
{ { dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] } 
| { RENAME TO name } 
| { RESTART WITH long } 
| { SELECTIVITY int } 
| { SET DEFAULT expression } 
| { SET NULL } 
| { SET NOT NULL } }

Nella sintassi sopra -

  • RESTART - il comando cambia il valore successivo di una colonna di incremento automatico.

  • SELECTIVITY- il comando imposta la selettività (1-100) per una colonna. In base al valore di selettività possiamo visualizzare il valore della colonna.

  • SET DEFAULT - modifica il valore predefinito di una colonna.

  • SET NULL - imposta la colonna per consentire NULL.

  • SET NOT NULL - imposta la colonna per consentire NOT NULL.

Esempio

In questo esempio, rinomineremo la colonna della tabella tutorials_tbl a partire dal Title per Tutorial_Title utilizzando la seguente query.

ALTER TABLE tutorials_tbl ALTER COLUMN title RENAME TO tutorial_title;

La query precedente produce il seguente output.

(0) row(s) effected

In modo simile, possiamo eseguire diversi scenari con il comando ALTER.