Понякога може да се наложи да изтриете колона от таблицата на базата данни в MySQL. Можете лесно да направите това с помощта на командата MySQL DROP COLUMN. Ето как да премахнете колона от таблица в MySQL.
Как да махна колона от таблица в MySQL
Ето стъпките за премахване на колона от таблица в MySQL. Ще използваме MySQL DROP COLUMN заявка, за да премахнем съществуващите колони от таблицата.
Ето синтаксиса на израза DROP COLUMN:
ALTER TABLE table_name DROP COLUMN column_name;
В горното изявление трябва да споменете таблицата, чиято колона искате да премахнете, в клаузата ALTER TABLE. След това посочете името на колоната в клаузата DROP COLUMN.
Можете да използвате само DROP, вместо да използвате DROP COLUMN по-горе.
Ако искате да премахнете няколко колони от таблицата, споменете ги в отделни клаузи DROP COLUMN, в същото изявление.
ALTER TABLE table_name DROP COLUMN column1, DROP COLUMN column2, DROP COLUMN column3;
Когато премахнете колона от таблицата, всички съхранени процедури, изгледи и тригери, които се отнасят до тази колона, стават невалидни. Ще трябва да ги актуализирате ръчно, за да работят отново. Можете също да пуснете колона с индекс, но индексът ще стане невалиден след премахването на колоната.
Бонус четене:MySQL DROP TABLE
Примери за ОТПУСКАНЕ НА КОЛОНА MySQL
Да приемем, че имате следната таблица поръчки
mysql> create table orders(order_date date, sale int, product_id int, category varchar(255));
Да приемем, че искате да ПУСКАТЕ КОЛОНА product_id
mysql> alter table orders drop column product_id; mysql> describe orders; +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | order_date | date | YES | | NULL | | | sale | int(11) | YES | | NULL | | | category | varchar(255) | YES | | NULL | | +------------+--------------+------+-----+---------+-------+
Бонус четене:Как да получите записи от днес в MySQL
MySQL ИЗПУСКА множество колони
Да приемем, че искате да премахнете продажбата и категорията на няколко колони. Ето инструкцията на MySQL DROP COLUMN за изтриване на множество колони от таблицата в MySQL
mysql> alter table orders drop column sale, drop column category; mysql> describe orders; +------------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------+------+-----+---------+-------+ | order_date | date | YES | | NULL | | +------------+------+------+-----+---------+-------+
Бонус за четене:Как да получите записи от последните 7 дни в MySQL
MySQL DROP COLUMN с външен ключ
Ако се опитате директно да ПУСКАТЕ КОЛОНА с външен ключ, MySQL ще изведе грешка. Да приемем, че имате следните таблици
mysql> create table orders3(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders3 ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id);
Бонус за четене:Как да получите записи между 2 дати в MySQL
В горния пример външният ключ category_id в orders3 препраща към колоната с идентификатор на първичен ключ от таблицата с категории. Ако се опитате да го изтриете, ще получите грешка.
mysql> alter table orders3 drop column category_id; ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
Така че първо трябва да изтриете ограничението на външния ключ и едва след това да използвате MySQL DROP COLUMN
mysql> alter table orders3 drop foreign key fk_cat; mysql> alter table orders3 drop column category_id; mysql> describe orders3; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | +-------+---------+------+-----+---------+----------------+
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!