Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да промените таблицата в Oracle

Често се налага да променяме таблицата в Oracle в зависимост от промените в изискванията и надстройката. Ето някои от важните точки за оператора Alter table

  • Променяте или модифицирате  таблица, като използвате ALTER TABLE  изявление.
  • Таблицата трябва да се съдържа във вашата схема, За да промените таблица, или трябва или да имате право  ALTER обект за таблицата или системно право ALTER ANY TABLE.
  • Ако изглед, материализиран изглед, тригер, базиран на функция индекс, ограничение за проверка, функция, процедура на пакета зависят от базова таблица, промяната на основната таблица или нейните колони може да повлияе на зависимия обект Например plsql обекти стават невалиден  ако зависимият обект на таблица е променен и трябва да ги направите отново валидни

Промяна на физически характеристики (INITRANS или параметри за съхранение)

Можем да променим параметъра за съхранение на таблицата с помощта на оператор Alter table. Можем да модифицираме inittrans по този начин

ALTER TABLE TABLE_NAME INITRANS 10;

Преместване на таблицата в нови сегменти или пространство за таблици

Можем да преместим таблицата без дялове или дяла  на  таблицата в нов сегмент или ново пространство за таблици, ако е необходимо

Alter table table_name move tablespace <tablespace name>

Можем дори да използваме командата за преместване, за да променим всеки параметър за съхранение на таблиците, които не са променени с командата alter table

Променете таблицата в oracle за промяна на типа данни

Можем да променим типа данни  на всяка колона с помощта на командата alter table  modify

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)

промяна на типа данни на колона в oracle

Добавяне на нова колона/Изхвърляне на колона/преименуване на колона

Можем да добавим нова колона към дефиницията на таблицата

Използване на командата alter table add 

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

Oracle ви позволява да преименувате съществуващи колони в таблица. Използвайте клаузата RENAME COLUMN от оператора ALTER TABLE за преименуване на колона

Oracle ви позволява да пуснете колоната в таблицата с помощта на командата

Променете таблицата падаща колона;
Моля, проверете статията по-долу, за да научите за тях в подробности

променете таблицата за добавяне на колона оракул

Задайте неизползвана колона  и пуснете неизползваната колона

ако сте загрижени за ресурса, изразходван при отпадането на колоната, тогава можете да използвате оператора ALTER TABLE...SET UNUSED.

Това изявление маркира една или повече колони като неизползвани, но всъщност не премахва данните от целевата колона или не възстановява дисковото пространство, заето от тези колони.

  • Колона, която е маркирана като неизползвана, не се показва в заявки или изгледи на речник с данни и името й се премахва, за да може нова колона да използва повторно това име. Всички ограничения, индекси и статистически данни, дефинирани в колоната, също се премахват.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

Можем да премахнем неизползваната колона по-късно, когато ресурсът е по-нисък, като използваме командата

ALTER TABLE <table_name>
Drop  UNUSED COLUMN ;

Добавете, модифицирайте или махнете ограничения за целостта, свързани с таблицата  или можете също да активирате/деактивирате ограниченията

Добавянето на ограничения  се извършва чрез alter table add constraints

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

Отпадане на ограниченията – става с помощта на

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Активиране/Деактивиране на ограничения – Ограниченията могат да бъдат създадени в режим ИЗКЛЮЧВАНЕ/АКТИВИРАНЕ или могат да бъдат деактивирани или активирани с помощта на командата

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Преименуване на името на таблицата

Oracle ви позволява да преименувате и името на таблицата

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

Промяна на кеша на таблицата/без кеш,  Компресия, паралелизъм

Oracle позволява Промяна на кеша на таблицата/без кеш,  Компресия, паралелизъм

Сродни статии

Избройте всички таблици в Oracle
създайте таблица oracle
ora-20005:статистическите данни за обекта са заключени
променете движението на таблицата
как да проверите всички ограничения на таблица в oracle
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. начини за избягване на глобални временни таблици в oracle

  2. Екраниращ знак амперсанд в SQL низ

  3. Как да създадете PL/SQL съхранени процедури без параметри в базата данни на Oracle

  4. Как да получите достъп до Oracle DB във VirtualBox от хост (windows)

  5. Клониране на ORACLE_HOME