Czasami nazwa naszej tabeli jest bez znaczenia, dlatego konieczna jest zmiana nazwy lub zmiana nazwy tabeli. MySQL zapewnia użyteczną składnię, która pozwala zmienić nazwę jednej lub większej liczby tabel w bieżącej bazie danych.
Składnia
Poniżej przedstawiono składnię używaną do zmiany nazwy tabeli:
mysql> RENAME old_table TO new_table;
Tutaj musimy się o to upewnić nowa_nazwa_tabeli nie może istnieć, i nazwa_starej_tabeli powinien znajdować się w bazie. W przeciwnym razie wyświetli komunikat o błędzie. Ma to na celu upewnienie się, że tabela nie jest zablokowana, a także nie ma aktywnych transakcji przed wykonaniem tego polecenia.
UWAGA: Jeśli używamy instrukcji RENAME TABLE, wymagane jest posiadanie uprawnień ALTER i DROP TABLE do istniejącej tabeli. Ponadto ta instrukcja nie może zmienić nazwy tabeli tymczasowej.
Możemy także skorzystać z MySQL ZMIEŃ NAZWĘ TABELI instrukcja służąca do zmiany więcej niż jednej nazwy tabeli za pomocą jednej instrukcji, jak pokazano poniżej:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Z MySQL 8.0.13 wersji, możemy zmienić starą nazwę tabeli zabezpieczoną instrukcją LOCK, a także użyć klauzuli WRITE LOCK. Na przykład następujące prawidłowe stwierdzenie:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Następujące stwierdzenia są niedozwolone:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Przed wersją MySQL 8.0.13 nie możemy zmienić nazwy tabeli zablokowanej instrukcją LOCK TABLE.
MySQL używa również instrukcji RENAME TABLE do przenoszenia tabeli z jednej bazy danych do drugiej, co pokazano poniżej:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Przykład zmiany nazwy tabeli MySQL
Pozwól nam zrozumieć, jak instrukcja RENAME TABLE działa w MySQL na różnych przykładach. Załóżmy, że mamy tabelę o nazwie PRACOWNIK , i z jakiegoś powodu istnieje potrzeba zmiany go na tabelę o nazwie KLIENT .
Nazwa tabeli: pracownik
Następnie wykonaj następującą składnię, aby zmienić nazwę tabeli:
mysql> RENAME employee TO customer;
Wyjście
ciąg w c
Zobaczymy, że tabela o nazwie „pracownik” zostanie zmieniona na nową tabelę o nazwie „klient”:
Na powyższym wyjściu widzimy, że jeśli użyjemy nazwy tabeli pracownik po wykonaniu instrukcji RENAME TABLE, wyświetli się komunikat o błędzie.
Jak ZMIENIĆ NAZWĘ wielu tabel
Instrukcja RENAME TABLE w MySQL pozwala nam także na zmianę więcej niż jednej nazwy tabeli w ramach jednej instrukcji. Zobacz poniższe oświadczenie:
Załóżmy, że nasza baza danych ' mójpracownikb ' posiadający następujące tabele:
Jeśli chcemy zamienić nazwę stołu klienta na pracownika, a koszulkę z imieniem na odzież, wykonaj poniższą instrukcję:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Wyjście
Widzimy, że nazwa stołu klienta na nazwę pracownika i nazwa stołu na odzież została pomyślnie zmieniona.
Zmień nazwę tabeli za pomocą instrukcji ALTER
Za pomocą instrukcji ALTER TABLE można także zmienić nazwę istniejącej tabeli w bieżącej bazie danych. Poniżej przedstawiono składnię instrukcji ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Zobacz następujące zapytanie, które zmienia istniejącą odzież na stół na nowe koszule z imieniem na stół:
rok wynalezienia komputera
mysql> ALTER TABLE garments RENAME TO shirts:
Wyjście
Tutaj widzimy, że nazwa stołu została zmieniona na koszule z imieniem stołu.
Jak zmienić nazwę tabeli tymczasowej
Tabela tymczasowa pozwala nam przechowywać dane tymczasowe, które są widoczne i dostępne tylko w bieżącej sesji. Zatem najpierw musimy utworzyć tabelę tymczasową, korzystając z następującej instrukcji:
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);
Następnie wstaw wartości do tej tabeli:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Następnie uruchom polecenie show table, aby sprawdzić tabelę tymczasową:
mysql> SELECT * FROM Students;
Teraz uruchom następujące polecenie, aby zmienić nazwę tabeli tymczasowej:
mysql> RENAME TABLE Students TO student_info;
Wyświetli się komunikat o błędzie, jak pokazano poniżej:
Zatem MySQL pozwala instrukcji ALTER table na zmianę nazwy tabeli tymczasowej:
mysql> ALTER TABLE Students RENAME TO student_info;
Wyjście