sql >> Databasteknik >  >> RDS >> Mysql

MySQL DROP-KOLUMN

Ibland kan du behöva ta bort kolumn från databastabellen i MySQL. Du kan enkelt göra detta med kommandot MySQL DROP COLUMN. Så här släpper du kolumn från tabell i MySQL.

Hur man släpper kolumn från tabell i MySQL

Här är stegen för att ta bort kolumn från tabell i MySQL. Vi kommer att använda MySQL DROP COLUMN-frågan för att ta bort befintliga kolumner från tabellen.

Här är syntaxen för DROP COLUMN-satsen:

ALTER TABLE table_name
DROP COLUMN column_name;

I ovanstående uttalande måste du nämna tabellen vars kolumn du vill ta bort, i ALTER TABLE-satsen. Ange sedan kolumnnamnet i DROP COLUMN-satsen.

Du kan bara använda DROP, istället för att använda DROP COLUMN ovan.

Om du vill ta bort flera kolumner från tabellen nämner du dem i separata DROP COLUMN-satser, i samma sats.

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

När du tar bort en kolumn från tabellen blir alla lagrade procedurer, vyer och utlösare som refererar till denna kolumn ogiltiga. Du måste uppdatera dem manuellt för att få dem att fungera igen. Du kan också ta bort kolumn med Index men indexet blir ogiltigt efter att kolumnen tagits bort.

Bonus Läs:MySQL DROP TABLE

Exempel på MySQL DROP COLUMN

Låt oss säga att du har följande tabellorder

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

Låt oss säga att du vill släppa COLUMN 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:Hur man får poster från idag i MySQL

MySQL DROP Flera kolumner

Låt oss säga att du vill ta bort försäljning och kategori med flera kolumner. Här är MySQL DROP COLUMN-satsen för att ta bort flera kolumner från 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    |       |
+------------+------+------+-----+---------+-------+

Bonus Läs:Hur man får poster från de senaste 7 dagarna i MySQL

MySQL DROP COLUMN med främmande nyckel

Om du försöker släppa kolumn direkt med främmande nyckel kommer MySQL att ge ett fel. Låt oss säga att du har följande 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:Hur man får poster mellan 2 datum i MySQL

I exemplet ovan refererar främmande nyckel category_id i orders3 till primärnyckel-ID-kolumnen från kategoritabellen. Om du försöker ta bort den får du ett felmeddelande.

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 måste du ta bort en främmande nyckel och först sedan använda 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 enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Var är mina patchar?

  2. LEAST() Funktion i PostgreSQL

  3. Steg för att ändra administratörslösenord som har förlorats eller glömts av en EBS WebLogic Domain R12.2

  4. Skapa en studentdatabas med Microsoft Access