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
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