sql >> Database teknologi >  >> RDS >> Mysql

MySQL DROP KOLONNE

Nogle gange skal du muligvis slette kolonne fra databasetabellen i MySQL. Du kan nemt gøre dette ved at bruge MySQL DROP COLUMN-kommandoen. Sådan slipper du kolonne fra tabel i MySQL.

Sådan dropper du kolonne fra tabel i MySQL

Her er trinene til at fjerne kolonne fra tabel i MySQL. Vi vil bruge MySQL DROP COLUMN-forespørgsel til at fjerne eksisterende kolonner fra tabellen.

Her er syntaksen for DROP COLUMN-sætningen:

ALTER TABLE table_name
DROP COLUMN column_name;

I ovenstående erklæring skal du nævne den tabel, hvis kolonne du vil slette, i ALTER TABLE-klausulen. Angiv derefter kolonnenavnet i DROP COLUMN-udtrykket.

Du kan kun bruge DROP i stedet for at bruge DROP COLUMN ovenfor.

Hvis du vil slette flere kolonner fra tabellen, skal du nævne dem i separate DROP COLUMN-sætninger i samme sætning.

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

Når du fjerner en kolonne fra tabellen, bliver alle lagrede procedurer, visninger og triggere, der refererer til denne kolonne, ugyldige. Du bliver nødt til at opdatere dem manuelt for at få dem til at fungere igen. Du kan også droppe kolonne med Index, men indekset bliver ugyldigt efter fjernelse af kolonne.

Bonus Læs:MySQL DROP TABEL

Eksempler på MySQL DROP KOLONNE

Lad os sige, at du har følgende tabel ordrer

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

Lad os sige, at du vil SLIPPE KOLUMNE 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    |       |
+------------+--------------+------+-----+---------+-------+

Bonus Læs:Sådan får du poster fra i dag i MySQL

MySQL DROP flere kolonner

Lad os sige, at du vil droppe salg og kategori med flere kolonner. Her er MySQL DROP COLUMN-sætningen til at slette flere kolonner fra tabellen i 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    |       |
+------------+------+------+-----+---------+-------+

Bonuslæser:Sådan får du optegnelser fra sidste 7 dage i MySQL

MySQL DROP-KOLONNE med fremmednøgle

Hvis du prøver at DROP COLUMN direkte med fremmednøgle, vil MySQL give en fejl. Lad os sige, at du har følgende tabeller

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 Læs:Sådan får du poster mellem 2 datoer i MySQL

I ovenstående eksempel refererer fremmednøgle category_id i orders3 til primær nøgle-id-kolonne fra kategoritabellen. Hvis du prøver at slette den, får du en fejl.

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

Så først skal du slette fremmednøglebegrænsning og kun derefter bruge 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 gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Aflæs meget store databaser

  2. Hvad er SQL? Hvad er en database? Relationelle databasestyringssystemer (RDBMS) forklaret på almindeligt engelsk.

  3. SQL - Forespørgsel for at få serverens IP-adresse

  4. Regulært udtryk (RegEx) for IPv6 Adskilt fra IPv4