ALTER - оператор DDL мови SQL, що використовується для зміни властивостей баз даних. Типи об'єктів, які можуть бути змінені, залежать від використовуваної СКБД.
ALTER TABLE
Оператор ALTER TABLE використовується для додавання, зміни чи вилучення стовпчиків або обмежень у наявній таблиці. Оператор не працюватиме, коли наявні в таблиці записи порушують обмеження первинного ключа чи унікальності, а також якщо стовпчик, який намагаються вилучити, входить до обмежень UNIQUE
, PRIMARY KEY
, FOREIGN KEY
чи CHECK
, або застосовується для обчислення іншого стовпчика.
Повноваження
У користувача мають бути повноваження на внесення відповідних змін. Потрібні повноваження залежать від конкретної СКБД та від того, які саме зміни робляться.
Oracle
Користувач має бути власником (англ. owner) таблиці, яку він намагається змінити, або ж користувачеві має бути надано повноваження на зміни в цій таблиці (ALTER
) чи повноваження на зміну будь-якої таблиці на рівні всієї системи (ALTER ANY TABLE
).
- Додаткові передумови для операцій з розділами
- Якщо користувач не є власником таблиці, то для використання функцій
drop_table_partition
іtruncate_table_partition
у нього мають бути повноваженняDROP ANY TABLE
, а для використання функційadd_table_partition
,modify_table_partition
,move_table_partition
іsplit_table_partition
у нього має бути квота в табличному просторі. - Додаткові передумови для обмежень і тригерів
- Для увімкнення режиму батьківського контролю унікального або первинного ключа у користувач мають бути повноваження на створення індексів у таблиці. Ці повноваження необхідні, оскільки Oracle Database створює індекси в межах унікального або первинного ключа у схемі, що містить дану таблицю. Для увімкнення чи вимкнення тригерів користувач має бути їх власником або ж у нього мають бути системні повноваження
ALTER ANY TRIGGER
. - Додаткові передумови при використанні типів об'єктів
- Для використання типу об'єкта у визначенні стовпчика при зміні таблиці власником такого об'єкта має бути власник змінюваної таблиці або ж у користувача мають бути системні повноваження
EXECUTE ANY TYPE
чи повноваженняEXECUTE
для такого об'єкта. - Додаткові передумови для операцій архівування ретроспективних даних
- Для використання функції
flashback_archive_clause
з метою ввімкнення відстеження історії для таблиці користувач повинен мати повноваженняFLASHBACK ARCHIVE
в архіві даних ретроспективного аналізу, який міститиме історичні дані. Для вимкнення відстеження історії для таблиці у користувача мають бути системні повноваженняFLASHBACK ARCHIVE ADMINSTER
.
Синтаксис
Загальний синтаксис оператора ALTER TABLE
має вигляд:
ALTER TABLE "table_name" [Alter specification];
- Додавання стовпчика
ALTER TABLE "table_name" ADD "column_name" "data_type";
- Зміна типу даних стовпчика
- MySQL і Oracle
ALTER TABLE "table_name" MODIFY "column_name" "new_data_type";
- SQL Server
ALTER TABLE "table_name" ALTER COLUMN "column_name" "new_data_type";
- Перейменування стовпчика
- MySQL
ALTER TABLE "table_name" CHANGE "column_1" "column_2" "data_type";
- Oracle
ALTER TABLE "table_name" RENAME COLUMN "column_1" TO "column_2";
- Видалення стовпчика
- MySQL
ALTER TABLE "table_name" DROP "column_name";
- Oracle
ALTER TABLE "table_name" DROP COLUMN "column_name";
- Додавання індексу
ALTER TABLE "table_name" ADD INDEX "index_name" (column_name);
- Видалення індексу
ALTER TABLE "table_name" DROP INDEX "index_name";
- Додавання обмеження
ALTER TABLE "table_name" ADD "CONSTRAINT_NAME" "CONSTRAINT_TYPE" "CONSTRAINT_CONDITION";
- Видалення обмеження
ALTER TABLE "table_name" DROP [CONSTRAINT | INDEX] "CONSTRAINT_NAME";
Посилання
- . Архів оригіналу за 16 травня 2017. Процитовано 22 травня 2017.
- . Oracle Corporation. Архів оригіналу за 25 травня 2017. Процитовано 22 травня 2017.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ALTER operator DDL movi SQL sho vikoristovuyetsya dlya zmini vlastivostej baz danih Tipi ob yektiv yaki mozhut buti zmineni zalezhat vid vikoristovuvanoyi SKBD ALTER TABLEOperator ALTER TABLE vikoristovuyetsya dlya dodavannya zmini chi viluchennya stovpchikiv abo obmezhen u nayavnij tablici Operator ne pracyuvatime koli nayavni v tablici zapisi porushuyut obmezhennya pervinnogo klyucha chi unikalnosti a takozh yaksho stovpchik yakij namagayutsya viluchiti vhodit do obmezhen UNIQUE PRIMARY KEY FOREIGN KEY chi CHECK abo zastosovuyetsya dlya obchislennya inshogo stovpchika Povnovazhennya U koristuvacha mayut buti povnovazhennya na vnesennya vidpovidnih zmin Potribni povnovazhennya zalezhat vid konkretnoyi SKBD ta vid togo yaki same zmini roblyatsya Oracle Koristuvach maye buti vlasnikom angl owner tablici yaku vin namagayetsya zminiti abo zh koristuvachevi maye buti nadano povnovazhennya na zmini v cij tablici ALTER chi povnovazhennya na zminu bud yakoyi tablici na rivni vsiyeyi sistemi ALTER ANY TABLE Dodatkovi peredumovi dlya operacij z rozdilami Yaksho koristuvach ne ye vlasnikom tablici to dlya vikoristannya funkcij drop table partition i truncate table partition u nogo mayut buti povnovazhennya DROP ANY TABLE a dlya vikoristannya funkcij add table partition modify table partition move table partition i split table partition u nogo maye buti kvota v tablichnomu prostori Dodatkovi peredumovi dlya obmezhen i trigeriv Dlya uvimknennya rezhimu batkivskogo kontrolyu unikalnogo abo pervinnogo klyucha u koristuvach mayut buti povnovazhennya na stvorennya indeksiv u tablici Ci povnovazhennya neobhidni oskilki Oracle Database stvoryuye indeksi v mezhah unikalnogo abo pervinnogo klyucha u shemi sho mistit danu tablicyu Dlya uvimknennya chi vimknennya trigeriv koristuvach maye buti yih vlasnikom abo zh u nogo mayut buti sistemni povnovazhennya ALTER ANY TRIGGER Dodatkovi peredumovi pri vikoristanni tipiv ob yektiv Dlya vikoristannya tipu ob yekta u viznachenni stovpchika pri zmini tablici vlasnikom takogo ob yekta maye buti vlasnik zminyuvanoyi tablici abo zh u koristuvacha mayut buti sistemni povnovazhennya EXECUTE ANY TYPE chi povnovazhennya EXECUTE dlya takogo ob yekta Dodatkovi peredumovi dlya operacij arhivuvannya retrospektivnih danih Dlya vikoristannya funkciyi flashback archive clause z metoyu vvimknennya vidstezhennya istoriyi dlya tablici koristuvach povinen mati povnovazhennya FLASHBACK ARCHIVE v arhivi danih retrospektivnogo analizu yakij mistitime istorichni dani Dlya vimknennya vidstezhennya istoriyi dlya tablici u koristuvacha mayut buti sistemni povnovazhennya FLASHBACK ARCHIVE ADMINSTER Sintaksis Zagalnij sintaksis operatora ALTER TABLE maye viglyad ALTER TABLE table name Alter specification Dodavannya stovpchika ALTER TABLE table name ADD column name data type Zmina tipu danih stovpchika MySQL i OracleALTER TABLE table name MODIFY column name new data type SQL ServerALTER TABLE table name ALTER COLUMN column name new data type Perejmenuvannya stovpchika MySQLALTER TABLE table name CHANGE column 1 column 2 data type OracleALTER TABLE table name RENAME COLUMN column 1 TO column 2 Vidalennya stovpchika MySQLALTER TABLE table name DROP column name OracleALTER TABLE table name DROP COLUMN column name Dodavannya indeksu Div takozh Indeks tablici bazi danihALTER TABLE table name ADD INDEX index name column name Vidalennya indeksu ALTER TABLE table name DROP INDEX index name Dodavannya obmezhennya Div takozh Cilisnist informaciyiALTER TABLE table name ADD CONSTRAINT NAME CONSTRAINT TYPE CONSTRAINT CONDITION Vidalennya obmezhennya ALTER TABLE table name DROP CONSTRAINT INDEX CONSTRAINT NAME Posilannya Arhiv originalu za 16 travnya 2017 Procitovano 22 travnya 2017 Oracle Corporation Arhiv originalu za 25 travnya 2017 Procitovano 22 travnya 2017