Понякога името на нашата таблица е безсмислено, така че се изисква преименуване или промяна на името на таблицата. MySQL предоставя полезен синтаксис, който може да преименува една или повече таблици в текущата база данни.
Синтаксис
Следният синтаксис е използван за промяна на името на таблицата:
mysql> RENAME old_table TO new_table;
Тук трябва да се уверим в това име_на_нова_таблица не трябва да съществува и старо_име_на_таблица трябва да присъства в базата данни. В противен случай ще изведе съобщение за грешка. Целта е да се гарантира, че таблицата не е заключена, както и че няма активни транзакции, преди да изпълните този оператор.
ЗАБЕЛЕЖКА: Ако използваме оператора RENAME TABLE, се изисква да имаме привилегии ALTER и DROP TABLE към съществуващата таблица. Освен това този оператор не може да промени името на временна таблица.
Можем да използваме и MySQL ПРЕИМЕНУВАНЕ НА ТАБЛИЦА израз за промяна на повече от едно име на таблица с един израз, както е показано по-долу:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
От MySQL 8.0.13 версия, можем да променим старото име на таблица, заключено с команда LOCK и също използва клаузата WRITE LOCK. Например, следните са валидните твърдения:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Следните твърдения не са разрешени:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Преди MySQL 8.0.13 версия, не можем да променим името на таблицата, която е била заключена с командата LOCK TABLE.
MySQL също използва израза RENAME TABLE за преместване на таблица от една база данни в друга база данни, което е показано по-долу:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Пример за MySQL RENAME TABLE
Нека разберем как операторът RENAME TABLE работи в MySQL чрез различните примери. Да предположим, че имаме таблица с име СЛУЖИТЕЛ , и поради някаква причина има нужда да го промените в таблицата с име КЛИЕНТ .
Име на таблицата: служител
След това изпълнете следния синтаксис, за да промените името на таблицата:
mysql> RENAME employee TO customer;
Изход
какво е myspace
Ще видим, че таблицата с име 'employee' ще бъде променена в ново име на таблица 'customer':
В горния изход можем да видим, че ако използваме името на таблицата employee след изпълнение на оператор RENAME TABLE, това ще изведе съобщение за грешка.
Как да ПРЕИМЕНУВАТЕ множество таблици
Операторът RENAME TABLE в MySQL също ни позволява да променяме повече от едно име на таблица в рамките на един оператор. Вижте изявлението по-долу:
Да предположим, че нашата база данни ' myemployeedb ' със следните таблици:
Ако искаме да променим името на масата клиент в служител и ризите с име на маса в дрехи, изпълнете следния оператор:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Изход
Можем да видим, че името на масата клиент в служител и името на масата ризи в дрехи са преименувани успешно.
Преименувайте таблицата с помощта на израза ALTER
Операторът ALTER TABLE може също да се използва за преименуване на съществуващата таблица в текущата база данни. Следва синтаксисът на оператора ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Вижте следната заявка, която променя съществуващите дрехи с имена на таблици в нови ризи с имена на таблици:
char към низ в java
mysql> ALTER TABLE garments RENAME TO shirts:
Изход
Тук можем да видим, че дрехите с имена на таблици са преименувани в ризи с имена на таблици.
Как да ПРЕИМЕНУВАТЕ временна таблица
Временната таблица ни позволява да съхраняваме временни данни, които са видими и достъпни само в текущата сесия. Така че, първо, трябва да създадем временна таблица, използвайки следния оператор:
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);
След това вмъкнете стойности в тази таблица:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
След това изпълнете командата show table, за да проверите временната таблица:
mysql> SELECT * FROM Students;
Сега изпълнете следната команда, за да промените името на временната таблица:
mysql> RENAME TABLE Students TO student_info;
Ще изведе съобщение за грешка, както е показано по-долу:
По този начин MySQL позволява изразът ALTER table да преименува временната таблица:
mysql> ALTER TABLE Students RENAME TO student_info;
Изход