Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL DROP COLUMN

Manchmal müssen Sie möglicherweise eine Spalte aus der Datenbanktabelle in MySQL löschen. Sie können dies ganz einfach mit dem MySQL-Befehl DROP COLUMN tun. So löschen Sie eine Spalte aus einer Tabelle in MySQL.

So löschen Sie eine Spalte aus einer Tabelle in MySQL

Hier sind die Schritte zum Löschen einer Spalte aus einer Tabelle in MySQL. Wir werden die MySQL DROP COLUMN-Abfrage verwenden, um vorhandene Spalten aus der Tabelle zu entfernen.

Hier ist die Syntax der DROP COLUMN-Anweisung:

ALTER TABLE table_name
DROP COLUMN column_name;

In der obigen Anweisung müssen Sie die Tabelle, deren Spalte Sie löschen möchten, in der ALTER TABLE-Klausel erwähnen. Geben Sie dann den Spaltennamen in der DROP COLUMN-Klausel an.

Sie können nur DROP verwenden, anstatt oben DROP COLUMN zu verwenden.

Wenn Sie mehrere Spalten aus der Tabelle löschen möchten, erwähnen Sie sie in separaten DROP COLUMN-Klauseln in derselben Anweisung.

ALTER TABLE table_name
DROP COLUMN column1,
DROP COLUMN column2,
DROP COLUMN column3;

Wenn Sie eine Spalte aus einer Tabelle entfernen, werden alle gespeicherten Prozeduren, Ansichten und Trigger, die auf diese Spalte verweisen, ungültig. Sie müssen sie manuell aktualisieren, damit sie wieder funktionieren. Sie können die Spalte auch mit Index löschen, aber der Index wird nach dem Entfernen der Spalte ungültig.

Bonus lesen:MySQL DROP TABLE

Beispiele für MySQL DROP COLUMN

Nehmen wir an, Sie haben die folgende Tabelle orders

mysql> create table orders(order_date date, 
       sale int, 
       product_id int, 
       category varchar(255));

Angenommen, Sie möchten COLUMN product_id DROPEN

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    |       |
+------------+--------------+------+-----+---------+-------+

Bonuslektüre:So erhalten Sie Einträge von heute in MySQL

MySQL DROP Mehrere Spalten

Angenommen, Sie möchten mehrere Spalten „Verkauf“ und „Kategorie“ löschen. Hier ist die MySQL DROP COLUMN-Anweisung, um mehrere Spalten aus einer Tabelle in MySQL zu löschen

mysql> alter table orders
     drop column sale,
     drop column category;

mysql> describe orders;
+------------+------+------+-----+---------+-------+
| Field      | Type | Null | Key | Default | Extra |
+------------+------+------+-----+---------+-------+
| order_date | date | YES  |     | NULL    |       |
+------------+------+------+-----+---------+-------+

Bonuslektüre:So erhalten Sie Datensätze der letzten 7 Tage in MySQL

MySQL DROP COLUMN mit Fremdschlüssel

Wenn Sie versuchen, COLUMN direkt mit dem Fremdschlüssel zu DROPEN, gibt MySQL einen Fehler aus. Angenommen, Sie haben die folgenden Tabellen

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);

Bonuslektüre:So erhalten Sie Datensätze zwischen 2 Daten in MySQL

Im obigen Beispiel verweist der Fremdschlüssel category_id in orders3 auf die Primärschlüssel-ID-Spalte aus der Kategorientabelle. Wenn Sie versuchen, es zu löschen, erhalten Sie eine Fehlermeldung.

mysql> alter table orders3 drop column category_id;
ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint

Sie müssen also zuerst die Fremdschlüsselbeschränkung löschen und erst dann MySQL DROP COLUMN

verwenden
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 macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!