Soms moet u mogelijk een kolom uit de databasetabel in MySQL verwijderen. U kunt dit eenvoudig doen met de opdracht MySQL DROP COLUMN. Hier leest u hoe u een kolom uit een tabel in MySQL kunt verwijderen.
Hoe een kolom uit een tabel in MySQL te verwijderen
Hier zijn de stappen om de kolom uit de tabel in MySQL te verwijderen. We zullen de MySQL DROP COLUMN-query gebruiken om bestaande kolommen uit de tabel te verwijderen.
Dit is de syntaxis van de DROP COLUMN-instructie:
ALTER TABLE table_name DROP COLUMN column_name;
In de bovenstaande instructie moet u de tabel vermelden waarvan u de kolom wilt verwijderen, in de ALTER TABLE-clausule. Geef vervolgens de kolomnaam op in de DROP COLUMN-clausule.
U kunt alleen DROP gebruiken, in plaats van DROP COLUMN hierboven.
Als u meerdere kolommen uit de tabel wilt verwijderen, vermeld ze dan in afzonderlijke DROP COLUMN-clausules in dezelfde instructie.
ALTER TABLE table_name DROP COLUMN column1, DROP COLUMN column2, DROP COLUMN column3;
Wanneer u een kolom uit de tabel verwijdert, worden alle opgeslagen procedures, weergaven en triggers die naar deze kolom verwijzen ongeldig. U moet ze handmatig bijwerken om ze weer te laten werken. U kunt ook een kolom verwijderen met Index, maar de index wordt ongeldig na het verwijderen van de kolom.
Bonus lezen:MySQL DROP TABLE
MySQL DROP COLUMN-voorbeelden
Stel dat u de volgende tabel orders . heeft
mysql> create table orders(order_date date, sale int, product_id int, category varchar(255));
Stel dat u KOLOM product_id . wilt DROPPEN
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 | | +------------+--------------+------+-----+---------+-------+
Bonus lezen:hoe u vandaag records kunt krijgen in MySQL
MySQL DROP Meerdere kolommen
Stel dat u meerdere kolommen verkoop en categorie wilt laten vallen. Hier is de MySQL DROP COLUMN-instructie om meerdere kolommen uit de tabel in MySQL te verwijderen
mysql> alter table orders drop column sale, drop column category; mysql> describe orders; +------------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------+------+-----+---------+-------+ | order_date | date | YES | | NULL | | +------------+------+------+-----+---------+-------+
Bonus lezen:hoe u records van de afgelopen 7 dagen in MySQL kunt krijgen
MySQL DROP COLUMN met externe sleutel
Als u COLUMN direct DROP met Foreign Key probeert, zal MySQL een foutmelding geven. Stel dat u de volgende tabellen heeft
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);
Bonus lezen:hoe u records kunt krijgen tussen 2 datums in MySQL
In het bovenstaande voorbeeld verwijst de externe sleutel category_id in orders3 naar de primaire sleutel-ID-kolom uit de categorieëntabel. Als je het probeert te verwijderen, krijg je een foutmelding.
mysql> alter table orders3 drop column category_id; ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
Dus eerst moet u de externe sleutelbeperking verwijderen en pas daarna MySQL DROP COLUMN gebruiken
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 maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!