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