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

Sloupec přejmenování MySQL

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!

  1. Použití funkcí okna v příkazu aktualizace

  2. Jak najít optimální jedinečný identifikátor v tabulce na serveru SQL Server:sp_special_columns

  3. Jak opravit adresu URL poskytovatele obsahu, která nebyla nalezena v poskytovateli obsahu pro Android?

  4. Najděte velikost bajtů řádku v PostgreSQL