ПостгреСКЛ Дроп колона
У овом одељку ћемо разговарати о томе како можемо испусти колоне уз помоћ АЛТЕР ТАБЛЕ команда.
ПостгреСКЛ ДРОП ЦОЛУМН команда
Користићемо услов ДРОП ЦОЛУМН у команди АЛТЕР ТАБЛЕ за испуштање колоне табеле:
ALTER TABLE table_name DROP COLUMN column_name;
ПостгреСКЛ ће аутоматски избрисати сва своја ограничења и индексе, укључујући колону док брише колону из табеле, а сваки услов испуштене колоне је одвојен знаком зарез (,) .
Не можемо избрисати оне колоне у којима други објекти зависе од њих и који се такође користе у другим објектима базе података као што је окидачи, прикази, ускладиштене процедуре, итд.
Дакле, за уклањање тих колона и свих повезаних објеката, користићемо ЦАСЦАДЕ опција у испусти колона командујте на следећи начин:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Ако желимо да избришемо непостојећу колону, ПостгреСКЛ ће покренути проблем. Додаћемо услов ИФ ЕКСИСТС у команду за испуштање колоне да бисмо прешли са овом грешком као што можемо видети у доњој команди:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
У горњој команди, ако избришемо колону која не постоји, ПостгреСКЛ ће покренути обавештење, а не грешку.
Користићемо наредбу испод ако треба да уклонимо различите колоне табеле у једној команди:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
Примери наредбе ПостгреСКЛ ДРОП ЦОЛУМН
Хајде да видимо неке примере да бисмо разумели рад АЛТЕР ТАБЛЕ ДРОП ЦОЛУМН команда.
Дакле, направићемо три различите табеле, као нпр Производ, категорије и бренд .
У горњем дијаграму, сваки Производ садржи само једну Марка , а сваки бренд може имати неколико производа. Сваки производ је додељен а категорија , а свака категорија може имати различите производе.
Следеће команде се користе за креирање три табеле (Категорије, производ и бренд) :
Креирање Категорије табела уз помоћ доње команде:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Излаз
Након извршења горње команде, добићемо поруку испод; тхе Категорије табела је направљена.
Креирање Производ табела користећи следећу изјаву:
CREATE TABLE Product ( Pro_id serial PRIMARY KEY, Pro_name VARCHAR NOT NULL, Brand_id INT NOT NULL, Cate_id INT NOT NULL, List_price DECIMAL NOT NULL, Model_year SMALLINT NOT NULL, FOREIGN KEY (Cate_id) REFERENCES Categories (Cate_id), FOREIGN KEY (Brand_id) REFERENCES Brand (Brand_id) );
Излаз
Након извршења горње команде, добићемо поруку испод; тхе Производ табела је направљена.
Креирање Марка табела користећи следећу команду:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Излаз
Након извршења горње команде, добићемо поруку испод; тхе Марка табела је направљена.
Осим тога, креирамо поглед на основу Производ и Марка табеле како следи:
CREATE VIEW Product_info AS SELECT Pro_id, Pro_name, Brand_name FROM Product p INNER JOIN Brand B ON B .Brand_id = p.Brand_id ORDER BY Pro_name;
Излаз
Након извршења горње команде, добићемо поруку испод; тхе Продуцт_инфо поглед је креиран.
Користићемо следећу команду ако желимо да избришемо цате_ид колона од Производ сто:
ALTER TABLE Product DROP COLUMN cate_id;
Излаз
Након извршења горње команде, добићемо поруку испод; тхе цате_ид колона пала са Производ сто.
Ако желимо да видимо табелу у пскл-у, користићемо наредбу испод
Javatpoint=# d Product;
Као што видимо на горњој слици екрана, горња команда брише колона Цате_ид и укључује Цате_ид колону у ограничење страног кључа.
Сада ћемо покушати да одбацимо Бранд_ид колона из Производ сто.
ALTER TABLE Product DROP COLUMN Brand_id;
Када извршимо горњу команду, ПостгреСКЛ ће покренути следећу грешку:
У њему је наведено да је продуцт_инфо приказ користи колону Бранд_ид од Производ сто.
Дакле, користићемо каскада опција за брисање оба Бранд_ид колона и Продуцт_инфо погледајте уз помоћ доње команде:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Када имплементирамо горњу команду, она ће подићи доњу објава и испустите одређену колону.
Овде ћемо одбацити оба листа_цена и година_модела колоне у једној команди, а ми треба да користимо вишеструки ДРОП ЦОЛУМН услови као што смо урадили у наставку:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Излаз
Након извршења горње команде, добићемо прозор са поруком у наставку: Тхе Колоне цена_листова и година_модела су избачени из Производ сто.
Ако желимо да видимо да горе наведене операције раде добро или не, користићемо Изаберите команда:
Select * from Product ;
Излаз
Након извршења горње команде, добићемо доњи излаз: