Czasami może być konieczna zmiana nazwy kolumny w MySQL lub zmiana nazwy kolumny bez zmiany jej typu. Oto jak zmienić nazwę kolumny w zapytaniu MySQL.
Jak zmienić nazwę kolumny w MySQL
Oto kroki, aby zmienić nazwę kolumny w zapytaniu MySQL za pomocą instrukcji MySQL ALTER TABLE.
Zmień nazwę kolumny w MySQL 5.6.xi 5.7.x
Oto zapytanie SQL do zmiany nazwy kolumny w MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name <column definition>;
W powyższym zapytaniu musisz wspomnieć o nazwa_tabeli po ALTER TABLE, stara_nazwa_kolumny i nowa_nazwa_kolumny po słowie kluczowym CHANGE. Musisz również wspomnieć o całej definicji kolumny swojej kolumny, nawet jeśli nie ma w niej żadnych zmian. W przeciwnym razie MySQL zmieni niezadeklarowane atrybuty na wartość domyślną.
Na przykład, jeśli masz ograniczenie NOT NULL dla swojej kolumny MySQL, ale nie wspomnisz o tym podczas zmiany nazwy kolumny, wtedy MySQL usunie to ograniczenie i zezwoli na wartości null dla tej kolumny, po zmianie jej nazwy.
Przeczytaj bonus:Procedura przechowywana MySQL z parametrami
Oto przykład zmiany nazwy kolumny. Załóżmy, że masz następującą tabelę zamówienia
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 | | +--------------+--------------+------+-----+-------------------+----------------+
Przeczytaj bonus:Jak zduplikować tabelę w MySQL
Zmień nazwę kolumny w MySQL 8.0
Od MySQL 8.0 istnieje jeszcze prostszy sposób na zmianę nazwy kolumny bez zmiany typu (bez określania całej definicji kolumny) za pomocą klauzuli RENAME COLUMN.
ALTER TABLE products RENAME COLUMN product_name TO product_full_name;
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!