Někdy je název naší tabulky nesmyslný, takže je nutné přejmenovat nebo změnit název tabulky. MySQL poskytuje užitečnou syntaxi, která může přejmenovat jednu nebo více tabulek v aktuální databázi.
Syntax
Následující syntaxe se používá ke změně názvu tabulky:
mysql> RENAME old_table TO new_table;
Tady se o to musíme ujistit název_nové_tabulky nesmí existovat a old_table_name by měl být přítomen v databázi. V opačném případě vypíše chybovou hlášku. Před provedením tohoto příkazu se má zajistit, že tabulka není uzamčena a že neexistují žádné aktivní transakce.
POZNÁMKA: Pokud použijeme příkaz RENAME TABLE, je nutné mít oprávnění ALTER a DROP TABLE ke stávající tabulce. Tento příkaz také nemůže změnit název dočasné tabulky.
Můžeme také použít MySQL PŘEJMENOVAT TABULKU příkaz změnit více než jeden název tabulky jedním příkazem, jak je uvedeno níže:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
z MySQL 8.0.13 verze, můžeme změnit starý název tabulky uzamčený příkazem LOCK a také používá klauzuli WRITE LOCK. Platné prohlášení jsou například následující:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Následující prohlášení nejsou povolena:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Před verzí MySQL 8.0.13 nemůžeme změnit název tabulky, která byla uzamčena příkazem LOCK TABLE.
MySQL také používá příkaz RENAME TABLE pro přesun tabulky z jedné databáze do jiné databáze, což je uvedeno níže:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Příklad MySQL RENAME TABLE
Pojďme si na různých příkladech porozumět, jak funguje příkaz RENAME TABLE v MySQL. Předpokládejme, že máme tabulku pojmenovanou ZAMĚSTNANEC a z nějakého důvodu je potřeba jej změnit na tabulku s názvem ZÁKAZNÍK .
Jméno tabulky: zaměstnanec
Dále proveďte následující syntaxi pro změnu názvu tabulky:
mysql> RENAME employee TO customer;
Výstup
inicializátor slovníku c#
Uvidíme, že tabulka s názvem 'zaměstnanec' bude změněna na novou tabulku s názvem 'zákazník':
Ve výše uvedeném výstupu můžeme vidět, že pokud použijeme název tabulky zaměstnanec po provedení příkazu RENAME TABLE, vyvolá to chybovou zprávu.
Jak přejmenovat více tabulek
Příkaz RENAME TABLE v MySQL nám také umožňuje změnit více než jeden název tabulky v rámci jednoho příkazu. Viz níže uvedené prohlášení:
Předpokládejme, že naše databáze ' myemployeedb “ s následujícími tabulkami:
Pokud chceme změnit jméno stolu zákazníka na zaměstnance a košile se jménem stolu na oděvy, proveďte následující příkaz:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Výstup
Vidíme, že název tabulky zákazník na zaměstnance a název stolu košile na oděvy byly úspěšně přejmenovány.
Přejmenujte tabulku pomocí příkazu ALTER
Příkaz ALTER TABLE lze také použít k přejmenování existující tabulky v aktuální databázi. Následuje syntaxe příkazu ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Podívejte se na následující dotaz, který mění stávající oděvy s názvem stolu na nové košile s názvem stolu:
boolean na řetězec java
mysql> ALTER TABLE garments RENAME TO shirts:
Výstup
Zde můžeme vidět, že oděvy se jménem tabulky byly přejmenovány na košile se jménem tabulky.
Jak PŘEJMENOVAT dočasnou tabulku
Dočasná tabulka nám umožňuje uchovávat dočasná data, která jsou viditelná a přístupná pouze v aktuální relaci. Nejprve tedy musíme vytvořit dočasnou tabulku pomocí následujícího příkazu:
mysql> CREATE TEMPORARY TABLE Students( name VARCHAR(40) NOT NULL, total_marks DECIMAL(12,2) NOT NULL DEFAULT 0.00, total_subjects INT UNSIGNED NOT NULL DEFAULT 0);
Dále vložte hodnoty do této tabulky:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Dále spusťte příkaz show table a zkontrolujte dočasnou tabulku:
mysql> SELECT * FROM Students;
Nyní spusťte následující příkaz a změňte název dočasné tabulky:
mysql> RENAME TABLE Students TO student_info;
Vyvolá chybovou zprávu, jak je uvedeno níže:
MySQL tedy umožňuje příkazu ALTER table přejmenovat dočasnou tabulku:
mysql> ALTER TABLE Students RENAME TO student_info;
Výstup