Czasami może być konieczne usunięcie kolumny z tabeli bazy danych w MySQL. Możesz to łatwo zrobić za pomocą polecenia MySQL DROP COLUMN. Oto jak usunąć kolumnę z tabeli w MySQL.
Jak usunąć kolumnę z tabeli w MySQL
Oto kroki, aby usunąć kolumnę z tabeli w MySQL. Użyjemy zapytania MySQL DROP COLUMN, aby usunąć istniejące kolumny z tabeli.
Oto składnia instrukcji DROP COLUMN:
ALTER TABLE table_name DROP COLUMN column_name;
W powyższej instrukcji musisz wspomnieć o tabeli, której kolumnę chcesz usunąć, w klauzuli ALTER TABLE. Następnie określ nazwę kolumny w klauzuli DROP COLUMN.
Możesz użyć tylko DROP, zamiast powyższego DROP COLUMN.
Jeśli chcesz usunąć wiele kolumn z tabeli, podaj je w oddzielnych klauzulach DROP COLUMN, w tej samej instrukcji.
ALTER TABLE table_name DROP COLUMN column1, DROP COLUMN column2, DROP COLUMN column3;
Po usunięciu kolumny z tabeli wszystkie procedury składowane, widoki i wyzwalacze, które odwołują się do tej kolumny, stają się nieprawidłowe. Musisz je ręcznie zaktualizować, aby ponownie działały. Możesz także usunąć kolumnę z indeksem, ale indeks stanie się nieważny po usunięciu kolumny.
Przeczytaj bonus:MySQL DROP TABLE
Przykłady upuszczania kolumn MySQL
Załóżmy, że masz następującą tabelę zamówienia
mysql> create table orders(order_date date, sale int, product_id int, category varchar(255));
Załóżmy, że chcesz UPUŚĆ KOLUMNĘ id_produktu
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 | | +------------+--------------+------+-----+---------+-------+
Przeczytaj bonus:Jak uzyskać dzisiejsze rekordy w MySQL
Wiele kolumn MySQL DROP
Załóżmy, że chcesz usunąć sprzedaż i kategorię wielu kolumn. Oto instrukcja MySQL DROP COLUMN do usuwania wielu kolumn z tabeli w 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 | | +------------+------+------+-----+---------+-------+
Przeczytaj bonus:Jak uzyskać rekordy z ostatnich 7 dni w MySQL
MySQL DROP COLUMN z kluczem obcym
Jeśli spróbujesz bezpośrednio DROP COLUMN za pomocą obcego klucza, MySQL zwróci błąd. Załóżmy, że masz następujące tabele
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);
Przeczytaj bonus:Jak uzyskać rekordy między 2 datami w MySQL
W powyższym przykładzie klucz obcy id_kategorii w zamówieniu3 odwołuje się do kolumny identyfikatora klucza podstawowego z tabeli kategorii. Jeśli spróbujesz go usunąć, pojawi się błąd.
mysql> alter table orders3 drop column category_id; ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
Więc najpierw musisz usunąć ograniczenie klucza obcego, a dopiero potem użyć 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 ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!