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!