sql >> Database >  >> RDS >> Mysql

MySQL DROP-KOLOM

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!

  1. Hoe retentiepercentage in SQL berekenen?

  2. Hoe de som van meerdere kolommen in een tabel in SQL Server 2005 te vinden?

  3. Verborgen functies in Oracle

  4. SYSDATE() Voorbeelden – MySQL