sql >> Database >  >> RDS >> Oracle

Tabel wijzigen in Oracle

We moeten de tabel in Oracle vaak wijzigen, afhankelijk van de vereisten en upgrades. Hier zijn enkele van de belangrijke punten over Alter table statement

  • U wijzigt of wijzigt  een tabel met de ALTER TABLE  verklaring.
  • De tabel moet in uw schema staan. Als u een tabel wilt wijzigen, moet u ofwel het objectrecht ALTER voor de tabel hebben of het systeemrecht ALTER ANY TABLE.
  • Als een weergave, gematerialiseerde weergave, trigger, functie-gebaseerde index, controlebeperking, functie, procedure van pakket afhankelijk is van een basistabel, kan de wijziging van de basistabel of de kolommen ervan het afhankelijke object beïnvloeden. plsql-objecten worden bijvoorbeeld ongeldig  als het afhankelijke tabelobject wordt gewijzigd en u het opnieuw geldig moet maken

Fysieke kenmerken wijzigen (INITRANS of opslagparameters)

We kunnen de opslagparameter van de tabel wijzigen met de instructie Alter table. We kunnen inittrans op deze manier aanpassen

ALTER TABLE TABLE_NAME INITRANS 10;

De tabel verplaatsen naar nieuwe segmenten of tabelruimte

We kunnen indien nodig de niet-gepartitioneerde tabel of partitie van de tabel naar een nieuw segment of nieuwe tabelruimte verplaatsen

Alter table table_name move tablespace <tablespace name>

We kunnen zelfs de move-opdracht gebruiken om een ​​opslagparameter van de tabellen te wijzigen die niet zijn gewijzigd met behulp van de alter table-opdracht

Tabel in orakel wijzigen om gegevenstype te wijzigen

We kunnen het gegevenstype van elke kolom wijzigen met de opdracht Wijzig tabel Wijzigen

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)

wijzig kolomgegevenstype in orakel

Een nieuwe kolom toevoegen/een kolom verwijderen/een kolom hernoemen

We kunnen een nieuwe kolom toevoegen aan de tabeldefinitie

De opdracht 'wijzig tabel toevoegen' gebruiken

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

Met Oracle kunt u bestaande kolommen in een tabel hernoemen. Gebruik de clausule RENAME COLUMN van de instructie ALTER TABLE om de naam van een kolom te wijzigen

Oracle stelt u in staat om de kolom in de tabel te laten vallen met het commando

Wijzig tabel drop column;
Bekijk het onderstaande artikel voor meer informatie hierover

tabel wijzigen kolom orakel toevoegen

Stel een kolom ongebruikt in en verwijder de ongebruikte kolom

als u zich zorgen maakt over de bron die wordt verbruikt bij het verwijderen van de kolom, kunt u de instructie ALTER TABLE…SET UNUSED gebruiken.

Deze instructie markeert een of meer kolommen als ongebruikt, maar verwijdert niet echt de doelkolomgegevens of herstelt de schijfruimte die door deze kolommen wordt ingenomen.

  • Een kolom die is gemarkeerd als ongebruikt, wordt niet weergegeven in query's of datadictionary-weergaven, en de naam ervan wordt verwijderd zodat een nieuwe kolom die naam kan hergebruiken. Alle beperkingen, indexen en statistieken die in de kolom zijn gedefinieerd, worden ook verwijderd.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

We kunnen de ongebruikte kolom later laten vallen wanneer de bron lager is met het commando

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Integriteitsbeperkingen die aan de tabel zijn gekoppeld toevoegen, wijzigen of verwijderen  of u kunt de beperkingen ook in-/uitschakelen

Beperkingen toevoegen wordt gedaan met behulp van tabelwijzigingsbeperkingen voor toevoegen

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

Beperkingen laten vallen – wordt gedaan met behulp van de

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Beperkingen inschakelen/uitschakelen – Beperkingen kunnen worden gemaakt in de DISABLE/ENABLE-modus of kunnen worden uitgeschakeld of ingeschakeld met behulp van de opdracht

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Naam tabel hernoemen

Met Oracle kunt u de naam van de tabel ook wijzigen

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

Wijziging van tabelcache/no-cache,  Compressie, parallellisme

Oracle staat toe Wijziging van tabelcache/geen cache, compressie, parallellisme

Gerelateerde artikelen

Lijst met alle tabellen in Oracle
tabel orakel maken
ora-2005:objectstatistieken zijn vergrendeld
tabel verplaatsen
hoe alle beperkingen op een tabel in orakel te controleren
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm


  1. Geef tabel door als parameter in sql-server UDF

  2. Identiteitstoename springt in SQL Server-database

  3. Een login.sql-bestand maken voor SQLcl

  4. Hoe trage query-logboeken in AWS RDS MySQL in te schakelen