Vi behöver ofta ändra tabell i Oracle beroende på kravändringar och uppgradering. Här är några av de viktiga punkterna om Alter table statement
- Du ändrar eller modifierar en tabell med ÄNDRA TABELL uttalande.
- Tabellen måste finnas i ditt schema För att ändra en tabell, eller så bör du antingen ha ALTER-objektbehörighet för tabellen eller ALTER ANY TABLE systembehörighet.
- Om en vy, materialiserad vy, trigger, funktionsbaserat index, kontrollbegränsning, funktion, paketprocedur beror på en bastabell, kan ändringen av bastabellen eller dess kolumner påverka det beroende objektet. Till exempel plsql-objekt blir invalid om det beroende tabellobjektet ändras och du måste göra dem giltiga igen
Ändra fysiska egenskaper (INITRANS eller lagringsparametrar)
Vi kan modifiera lagringsparametern för tabellen med hjälp av Alter table-satsen. Vi kan modifiera inittrans så här
ALTER TABLE TABLE_NAME INITRANS 10;
Flytta tabellen till nya segment eller tabellutrymme
Vi kan flytta den icke-partitionstabellen eller partitionen av tabellen till ett nytt segment eller nytt tabellutrymme om det behövs
Alter table table_name move tablespace <tablespace name>
Vi kan till och med använda kommandot flytta för att ändra valfri lagringsparameter för tabellerna som inte ändras med kommandot alter table
Ändra tabell i Oracle för att ändra datatyp
Vi kan ändra datatypen för vilken kolumn som helst med hjälp av modifieringskommandot alter table
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)
ändra kolumndatatyp i Oracle
Lägg till en ny kolumn/Släpp en kolumn/byt namn på en kolumn
Vi kan lägga till en ny kolumn i tabelldefinitionen
Använd kommandot alter table add
ALTER TABLE <table_name>
ADD (<New column_name> <new_data_type>);
Oracle låter dig byta namn på befintliga kolumner i en tabell. Använd RENAME COLUMN -satsen i ALTER TABLE för att byta namn på en kolumn
Oracle låter dig släppa kolumnen i tabellen med kommandot
Ändra tabell
Kontrollera artikeln nedan för att lära dig mer om dessa i detaljer
ändra tabell lägg till kolumn oracle
Ange en oanvänd kolumn och släpp den oanvända kolumnen
om du är bekymrad över resursen som förbrukades när kolumnen släpptes kan du använda satsen ALTER TABLE...SET UNUSED .
Denna sats markerar en eller flera kolumner som oanvända men tar inte bort målkolumndata eller återställer diskutrymmet som upptas av dessa kolumner.
- En kolumn som är markerad som oanvänd visas inte i sökfrågor eller datalexikon, och dess namn tas bort så att en ny kolumn kan återanvända det namnet. Alla begränsningar, index och statistik som definieras i kolumnen tas också bort.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;
Vi kan släppa den oanvända kolumnen senare när resursen är lägre med kommandot
ALTER TABLE <table_name>
Drop UNUSED COLUMN ;
Lägg till, ändra eller släpp integritetsbegränsningar som är kopplade till tabellen eller så kan du aktivera/inaktivera begränsningarna också
Lägg till begränsningar görs med hjälp av lägg till begränsningar i ändringstabellen
ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES DEPT(DEPT_NO);
Tappa begränsningar – görs med hjälp av
ALTER TABLE DROP CONSTRAINT <constraint_name> command;
Aktivera/inaktivera begränsningar – begränsningar kan skapas i läget DISABLE/ENABLE eller kan inaktiveras eller aktiveras med kommandot
ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>
Byt namn på tabellnamn
Oracle låter dig även byta namn på tabellen
Rename <table name> to <new table name>;
Ändring av tabellcache/no-cache, Kompression, parallellism
Oracle tillåter Ändring av tabellcache/no-cache, Komprimering, parallellism
Relaterade artiklar
Lista alla tabeller i Oracle
skapa tabell oracle
ora-20005:objektstatistik är låst
förändring av tabellflyttning
hur man kontrollerar alla begränsningar på en tabell i Oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm