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!