Често се налага да променяме таблицата в 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