Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zmienić tabelę w Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak zmienić datę na godzinę w Oracle 10g

  2. Jak uruchomić skrypt SQL Plus w PowerShell

  3. Wprowadzenie do Oracle RMAN

  4. Jak mogę uniknąć zbyt długich błędów surowej zmiennej długości w programie SQL Developer?

  5. Test wydajności i dostrajania Oracle