sql >> Databasteknik >  >> RDS >> Oracle

Hur man ändrar tabell i Oracle

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 drop-kolumn;
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


  1. Hur LIKE-operatören fungerar i MariaDB

  2. Ansluter till MySQL-databaser

  3. Oracle:hur man subtraherar två datum och får minuter av resultatet

  4. Hur man ändrar tabell lägg till kolumn oracle