Często musimy zmienić tabelę w Oracle w zależności od zmian wymagań i aktualizacji. Oto kilka ważnych punktów dotyczących instrukcji Alter table
- Zmieniasz lub modyfikujesz tabelę za pomocą ALTER TABLE oświadczenie.
- Tabela musi być zawarta w schemacie. Aby zmienić tabelę, możesz też mieć uprawnienia ALTER do obiektu dla tabeli lub uprawnienia systemowe ALTER ANY TABLE.
- Jeśli widok, widok zmaterializowany, wyzwalacz, indeks oparty na funkcji, ograniczenie sprawdzające, funkcja, procedura pakietu zależą od tabeli podstawowej, zmiana tabeli podstawowej lub jej kolumn może wpłynąć na obiekt zależny. Na przykład obiekty plsql stają się nieprawidłowy jeśli obiekt tabeli zależnej zostanie zmieniony i musisz przywrócić mu poprawność
Zmień właściwości fizyczne (INITRANS lub parametry pamięci)
Możemy zmodyfikować parametr przechowywania tabeli za pomocą instrukcji Alter table. Możemy modyfikować inittrans w ten sposób
ALTER TABLE TABLE_NAME INITRANS 10;
Przenoszenie tabeli do nowych segmentów lub przestrzeni tabel
W razie potrzeby możemy przenieść tabelę bez partycji lub partycję tabeli do nowego segmentu lub nowej przestrzeni tabel
Alter table table_name move tablespace <tablespace name>
Możemy nawet użyć polecenia move do zmiany dowolnego parametru przechowywania tabel, które nie są modyfikowane za pomocą polecenia alter table
Zmień tabelę w Oracle, aby zmienić typ danych
Możemy zmienić typ danych dowolnej kolumny za pomocą polecenia alter table modyfikować
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)
zmień typ danych kolumny w Oracle
Dodaj nową kolumnę/Upuść kolumnę/zmień nazwę kolumny
Możemy dodać nową kolumnę do definicji tabeli
Za pomocą polecenia alter table add
ALTER TABLE <table_name>
ADD (<New column_name> <new_data_type>);
Oracle umożliwia zmianę nazw istniejących kolumn w tabeli. Użyj klauzuli RENAME COLUMN instrukcji ALTER TABLE, aby zmienić nazwę kolumny
Oracle umożliwia upuszczenie kolumny w tabeli za pomocą polecenia
Alter table
Zapoznaj się z poniższym artykułem, aby dowiedzieć się więcej na ten temat
zmień tabelę dodaj wyrocznię kolumny
Ustaw nieużywaną kolumnę i upuść nieużywaną kolumnę
jeśli obawiasz się o zasób zużyty podczas usuwania kolumny, możesz użyć instrukcji ALTER TABLE…SET UNUSED.
Ta instrukcja oznacza co najmniej jedną kolumnę jako nieużywaną, ale w rzeczywistości nie usuwa danych kolumny docelowej ani nie przywraca miejsca na dysku zajmowanego przez te kolumny.
- Kolumna oznaczona jako nieużywana nie jest wyświetlana w zapytaniach ani widokach słownika danych, a jej nazwa jest usuwana, aby nowa kolumna mogła ponownie użyć tej nazwy. Wszystkie ograniczenia, indeksy i statystyki zdefiniowane w kolumnie są również usuwane.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;
Nieużywaną kolumnę możemy usunąć później, gdy zasób spadnie za pomocą polecenia
ALTER TABLE <table_name>
Drop UNUSED COLUMN ;
Dodaj, zmodyfikuj lub usuń ograniczenia integralności powiązane z tabelą lub możesz też włączyć/wyłączyć ograniczenia
Dodawanie ograniczeń odbywa się za pomocą funkcji dodawania ograniczeń zmień tabelę
ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES DEPT(DEPT_NO);
Zrzucanie ograniczeń – odbywa się za pomocą
ALTER TABLE DROP CONSTRAINT <constraint_name> command;
Włączanie/wyłączanie ograniczeń – ograniczenia można tworzyć w trybie WYŁĄCZ/WŁĄCZ lub można je wyłączyć lub włączyć za pomocą polecenia
ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>
Zmień nazwę tabeli
Oracle umożliwia również zmianę nazwy tabeli
Rename <table name> to <new table name>;
Zmiana pamięci podręcznej tabeli/brak pamięci podręcznej, Kompresja, równoległość
Oracle pozwala Zmiana pamięci podręcznej tabeli/brak pamięci podręcznej, kompresja, równoległość
Powiązane artykuły
Wyświetl listę wszystkich tabel w Oracle
utwórz wyrocznię tabeli
ora-20005:statystyki obiektów są zablokowane
zmień przenoszenie tabeli
jak sprawdzić wszystkie ograniczenia dotyczące tabeli w wyroczni
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm