sql >> Databáze >  >> RDS >> Mysql

MySQL DROP SLOUPEC

Někdy může být nutné odstranit sloupec z databázové tabulky v MySQL. Můžete to snadno provést pomocí příkazu MySQL DROP COLUMN. Zde je návod, jak odstranit sloupec z tabulky v MySQL.

Jak odstranit sloupec z tabulky v MySQL

Zde jsou kroky k odstranění sloupce z tabulky v MySQL. K odstranění existujících sloupců z tabulky použijeme dotaz MySQL DROP COLUMN.

Zde je syntaxe příkazu DROP COLUMN:

ALTER TABLE table_name
DROP COLUMN column_name;

Ve výše uvedeném příkazu musíte zmínit tabulku, jejíž sloupec chcete zrušit, v klauzuli ALTER TABLE. Poté zadejte název sloupce v klauzuli DROP COLUMN.

Můžete použít pouze DROP namísto použití DROP COLUMN výše.

Pokud chcete z tabulky odstranit více sloupců, uveďte je v samostatných klauzulích DROP COLUMN ve stejném příkazu.

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

Když z tabulky odeberete sloupec, všechny uložené procedury, pohledy a spouštěče, které odkazují na tento sloupec, se stanou neplatnými. Budete je muset ručně aktualizovat, aby znovu fungovaly. Sloupec můžete také zrušit pomocí Index, ale po odstranění sloupce bude index neplatný.

Bonusové čtení:MySQL DROP TABLE

Příklady DROP COLUMN MySQL

Řekněme, že máte následující tabulku objednávky

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

Řekněme, že chcete VYHNAT SLOUPEC id_produktu

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

Bonusové čtení:Jak získat záznamy z dneška v MySQL

MySQL DROP více sloupců

Řekněme, že chcete vypustit více sloupců prodej a kategorie. Zde je příkaz MySQL DROP COLUMN pro odstranění více sloupců z tabulky v 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    |       |
+------------+------+------+-----+---------+-------+

Bonusové čtení:Jak získat záznamy za posledních 7 dní v MySQL

MySQL DROP SLOUPEC s cizím klíčem

Pokud se pokusíte přímo DROP COLUMN s cizím klíčem MySQL vyvolá chybu. Řekněme, že máte následující tabulky

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

Bonusové čtení:Jak získat záznamy mezi 2 daty v MySQL

Ve výše uvedeném příkladu cizí klíč category_id v orders3 odkazuje na sloupec ID primárního klíče z tabulky kategorií. Pokud se jej pokusíte smazat, zobrazí se chyba.

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

Nejprve tedy musíte odstranit omezení cizího klíče a teprve poté použít 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 usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Nelze VYBRAT z klauzule UPDATE RETURNING v postgresu

  2. Nejúčinnější způsob, jak získat počet řádků tabulky

  3. SQLite JSON_INSERT()

  4. 2 způsoby, jak převést číslo na osmičkové číslo v MySQL