Někdy může být nutné změnit název sloupce v MySQL nebo přejmenovat název sloupce beze změny jeho typu. Zde je návod, jak přejmenovat sloupec v dotazu MySQL.
Jak změnit název sloupce v MySQL
Zde jsou kroky ke změně názvu sloupce v dotazu MySQL pomocí příkazu MySQL ALTER TABLE.
Přejmenovat sloupec v MySQL 5.6.xa 5.7.x
Zde je dotaz SQL pro přejmenování sloupce v MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name <column definition>;
Ve výše uvedeném dotazu musíte uvést název_tabulky za ALTER TABLE, starý_název_sloupce a new_column_name po klíčovém slově CHANGE. Musíte také zmínit celou definici sloupce vašeho sloupce, i když v něm nedošlo k žádné změně. Jinak MySQL změní nedeklarované atributy na výchozí hodnotu.
Pokud máte například ve sloupci MySQL omezení NOT NULL, ale nezmíníte se o něm při přejmenování sloupce, pak MySQL toto omezení zruší a po přejmenování sloupce povolí hodnoty null.
Bonusové čtení:Uložená procedura MySQL s parametry
Zde je příklad přejmenování sloupce. Řekněme, že máte následující tabulku objednávky
mysql> describe orders; +--------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(255) | NO | | NULL | | | order_date | date | YES | | NULL | | | price | int(11) | NO | | NULL | | | description | text | YES | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | +--------------+--------------+------+-----+-------------------+----------------+ mysql> alter table orders change price item_price int(11); mysql> describe orders; +--------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(255) | NO | | NULL | | | order_date | date | YES | | NULL | | | item_price | int(11) | YES | | NULL | | | description | text | YES | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | +--------------+--------------+------+-----+-------------------+----------------+
Bonusové čtení:Jak duplikovat tabulku v MySQL
Přejmenovat sloupec v MySQL 8.0
Od MySQL 8.0 existuje další jednodušší způsob, jak přejmenovat sloupec bez změny typu (bez zadání celé definice sloupce) pomocí klauzule RENAME COLUMN.
ALTER TABLE products RENAME COLUMN product_name TO product_full_name;
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!