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

Sådan ændres tabel i Oracle

Vi har ofte brug for at ændre tabel i Oracle afhængigt af kravændringer og opgradering. Her er nogle af de vigtige punkter om Alter tabelsætning

  • Du ændrer eller modificerer  en tabel ved hjælp af ÆNDRINGSTABEL  erklæring.
  • Tabellen skal være indeholdt i dit skema For at ændre en tabel, eller du skal enten have  ALTER-objektprivilegiet for tabellen eller ALTER ANY TABLE systemprivilegiet.
  • Hvis en visning, materialiseret visning, trigger,  funktionsbaseret indeks, kontrolbegrænsning, funktion, pakkeprocedure afhænger af en basistabel, kan ændringen af ​​basistabellen eller dens kolonner påvirke det afhængige objekt. For eksempel bliver plsql-objekter invalid  hvis det afhængige tabelobjekt ændres, og du skal gøre dem gyldige igen

Rediger fysiske egenskaber (INITRANS eller lagerparametre)

Vi kan ændre lagringsparameteren for tabellen ved hjælp af Alter tabelsætning. Vi kan modificere inittrans på denne måde

ALTER TABLE TABLE_NAME INITRANS 10;

Flytning af tabellen til nye segmenter eller tablespace

Vi kan flytte den ikke-partitionstabellen eller -partitionen i tabellen til et nyt segment eller nyt tablespace, hvis det kræves

Alter table table_name move tablespace <tablespace name>

Vi kan endda bruge move-kommandoen til at ændre enhver lagringsparameter for tabellerne, som ikke er ændret ved hjælp af alter table-kommandoen

Rediger tabel i Oracle for at ændre datatype

Vi kan ændre datatypen for enhver kolonne ved hjælp af modify-kommandoen 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)

ændre kolonnedatatype i Oracle

Tilføj en ny kolonne/slip en kolonne/omdøb en kolonne

Vi kan tilføje en ny kolonne til tabeldefinitionen

Brug af ændre tabel tilføje kommando

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

Oracle giver dig mulighed for at omdøbe eksisterende kolonner i en tabel. Brug RENAME COLUMN klausulen i ALTER TABLE erklæringen til at omdøbe en kolonne

Oracle giver dig mulighed for at slippe kolonnen i tabellen ved hjælp af kommandoen

Skift tabel drop column;
Se venligst nedenstående artikel for at få flere oplysninger om disse

ændre tabel tilføj kolonneorakel

Indstil en ubrugt kolonne, og slip den ubrugte kolonne

hvis du er bekymret over den ressource, der forbruges ved at droppe kolonnen, kan du bruge ALTER TABLE...SET UNUSED erklæringen.

Denne erklæring markerer en eller flere kolonner som ubrugte, men fjerner faktisk ikke målkolonnedata eller gendanner den diskplads, der optages af disse kolonner.

  • En kolonne, der er markeret som ubrugt, vises ikke i forespørgsler eller dataordbogsvisninger, og dens navn fjernes, så en ny kolonne kan genbruge dette navn. Alle begrænsninger, indekser og statistikker, der er defineret i kolonnen, fjernes også.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

Vi kan droppe den ubrugte kolonne senere, når ressourcen er lavere ved at bruge kommandoen

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Tilføj, rediger eller slip integritetsbegrænsninger knyttet til tabellen, eller du kan også aktivere/deaktivere begrænsningerne

Tilføj begrænsninger  udføres ved hjælp af ændringstabel tilføje begrænsninger

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

Slipning af begrænsninger – gøres ved hjælp af

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Aktivering/deaktivering af begrænsninger – Begrænsninger kan oprettes i DISABLE/ENABLE-tilstand eller kan deaktiveres eller aktiveres ved hjælp af kommandoen

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Omdøb tabelnavn

Oracle giver dig også mulighed for at omdøbe tabellens navn

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

Ændring af tabelcache/no-cache,  Kompression, parallelitet

Oracle tillader Ændring af tabelcache/no-cache,  Kompression, parallelitet

Relaterede artikler

Vis alle tabeller i Oracle
opret tabel-oracle
ora-20005:objektstatistikker er låst
skift tabelflyt
hvordan du tjekker alle begrænsninger på en tabel i Oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm


  1. Simpel parametrering og trivielle planer — del 2

  2. En simpel introduktion til brug af MySQL på Linux-terminalen

  3. Hent række hvor datetime column =today - SQL server noob

  4. Hvordan åbner man en SDF-fil (SQL Server Compact Edition)?