Oracle
 sql >> Database >  >> RDS >> Oracle

Come modificare la tabella in Oracle

Spesso è necessario modificare la tabella in Oracle a seconda delle modifiche e dell'aggiornamento dei requisiti. Ecco alcuni dei punti importanti sull'istruzione Alter table

  • Alteresti o modifichi una tabella utilizzando ALTER TABLE  dichiarazione.
  • La tabella deve essere contenuta nel tuo schema Per modificare una tabella, oppure devi disporre del privilegio di oggetto  ALTER per la tabella o del privilegio di sistema ALTER ANY TABLE.
  • Se una vista, vista materializzata, trigger,  indice basato su funzione, vincolo di controllo, funzione, procedura del pacchetto dipende da una tabella di base, l'alterazione della tabella di base o delle sue colonne può influenzare l'oggetto dipendente Ad esempio gli oggetti plsql diventano non valido  se l'oggetto tabella dipendente viene modificato e devi renderlo nuovamente valido

Modifica le caratteristiche fisiche (INITRANS o parametri di archiviazione)

Possiamo modificare il parametro di archiviazione della tabella usando l'istruzione Alter table. Possiamo modificare inittrans in questo modo

ALTER TABLE TABLE_NAME INITRANS 10;

Spostare la tabella in nuovi segmenti o tablespace

Possiamo spostare la tabella senza partizioni o la partizione della tabella in un nuovo segmento o nuovo tablespace, se necessario

Alter table table_name move tablespace <tablespace name>

Possiamo anche usare il comando move per cambiare qualsiasi parametro di archiviazione delle tabelle che non vengono modificati usando il comando alter table

Modifica tabella in Oracle per modificare il tipo di dati

Possiamo modificare il tipo di dati di qualsiasi colonna utilizzando il comando alter table modifica

ALTER TABLE <table_name>
MODIFY (<column_name>  <new_data_type>);
Before
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)


After
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(20)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

modifica il tipo di dati della colonna in Oracle

Aggiungi una nuova colonna/Elimina una colonna/rinomina una colonna

Possiamo aggiungere una nuova colonna alla definizione della tabella

Utilizzo del comando alter table add

ALTER TABLE <table_name>
ADD (<New column_name>  <new_data_type>);

Oracle consente di rinominare le colonne esistenti in una tabella. Utilizza la clausola RENAME COLUMN dell'istruzione ALTER TABLE per rinominare una colonna

Oracle ti consente di eliminare la colonna nella tabella utilizzando il comando

Modifica la colonna di rilascio della tabella;
Controlla l'articolo seguente per saperne di più in dettaglio

alter table add column oracle

Imposta una colonna inutilizzata e rilascia la colonna inutilizzata

se sei preoccupato per la risorsa consumata per eliminare la colonna, puoi utilizzare l'istruzione ALTER TABLE…SET UNUSED.

Questa istruzione contrassegna una o più colonne come non utilizzate ma in realtà non rimuove i dati della colonna di destinazione né ripristina lo spazio su disco occupato da queste colonne.

  • Una colonna contrassegnata come non utilizzata non viene visualizzata nelle query o nelle visualizzazioni del dizionario dati e il suo nome viene rimosso in modo che una nuova colonna possa riutilizzare quel nome. Vengono rimossi anche tutti i vincoli, gli indici e le statistiche definiti nella colonna.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

Possiamo eliminare la colonna inutilizzata in seguito quando la risorsa è inferiore utilizzando il comando

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Aggiungi, modifica o elimina i vincoli di integrità associati alla tabella oppure puoi abilitare/disabilitare anche i vincoli

L'aggiunta di vincoli viene eseguita utilizzando alter table add vincoli

ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES 
DEPT(DEPT_NO);

Eliminazione dei vincoli:viene eseguita utilizzando

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Abilitazione/Disabilitazione Vincoli – I vincoli possono essere creati in modalità DISABILITA/ABILITA oppure possono essere disabilitati o abilitati usando il comando

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Rinomina nome tabella

Oracle ti consente di rinominare anche il nome della tabella

Rename <table name>  to <new table name>;

Alterazione della cache/no-cache della tabella, Compressione, parallelismo

Oracle consente Alterazione della cache della tabella/no-cache, Compressione, parallelismo

Articoli correlati

Elenca tutte le tabelle in Oracle
crea tabella oracle
ora-20005:le statistiche degli oggetti sono bloccate
modifica spostamento tabella
come controllare tutti i vincoli su una tabella in oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm