Dažreiz mūsu tabulas nosaukumam nav nozīmes, tāpēc ir nepieciešams pārdēvēt vai mainīt tabulas nosaukumu. MySQL nodrošina noderīgu sintaksi, kas var pārdēvēt vienu vai vairākas tabulas pašreizējā datu bāzē.
Sintakse
Tālāk ir norādīta sintakse, ko izmanto, lai mainītu tabulas nosaukumu.
mysql> RENAME old_table TO new_table;
Lūk, mums tas ir jāpārliecinās new_table_name nedrīkst pastāvēt, un vecais_tabulas_nosaukums jābūt klāt datu bāzē. Pretējā gadījumā tiks parādīts kļūdas ziņojums. Tas ir paredzēts, lai pirms šī paziņojuma izpildes nodrošinātu, ka tabula nav bloķēta, kā arī nav aktīvu darījumu.
PIEZĪME. Ja mēs izmantojam priekšrakstu RENAME TABLE, tai ir jābūt ALTER un DROP TABLE privilēģijām esošajai tabulai. Turklāt šis paziņojums nevar mainīt pagaidu tabulas nosaukumu.
Mēs varam izmantot arī MySQL PĀRDĒVĒT TABULU priekšraksts, lai mainītu vairāk nekā vienu tabulas nosaukumu ar vienu paziņojumu, kā parādīts tālāk:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
No MySQL 8.0.13 versiju, mēs varam mainīt veco tabulas nosaukumu, kas bloķēts ar LOCK paziņojumu, kā arī izmanto WRITE LOCK klauzulu. Piemēram, derīgs paziņojums ir šāds:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Šāds paziņojums nav atļauts:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Pirms MySQL 8.0.13 versijas mēs nevaram mainīt tabulas nosaukumu, kas tika bloķēta ar priekšrakstu LOCK TABLE.
MySQL izmanto arī RENAME TABLE priekšrakstu, lai pārvietotu tabulu no vienas datu bāzes uz citu datu bāzi, kas parādīta tālāk:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
MySQL RENAME TABLE Piemērs
Ļaujiet mums saprast, kā RENAME TABLE priekšraksts darbojas MySQL, izmantojot dažādus piemērus. Pieņemsim, ka mums ir tabula ar nosaukumu DARBINIEKS , un kāda iemesla dēļ tas ir jāmaina uz tabulu ar nosaukumu KLIENTS .
Tabulas nosaukums: darbinieks
Pēc tam izpildiet šo sintaksi, lai mainītu tabulas nosaukumu:
mysql> RENAME employee TO customer;
Izvade
kas ir regex java
Mēs redzēsim, ka tabula ar nosaukumu 'darbinieks' tiks mainīta uz jaunu tabulas nosaukumu 'klients':
Iepriekš redzamajā izvadē mēs redzam, ka, ja mēs pēc RENAME TABLE priekšraksta izpildīšanas izmantosim tabulas nosaukumu darbinieks, tas parādīs kļūdas ziņojumu.
Kā PĀRDĒVĒT vairākas tabulas
RENAME TABLE priekšraksts MySQL arī ļauj mums mainīt vairāk nekā vienu tabulas nosaukumu vienā paziņojumā. Skatiet tālāk sniegto paziņojumu:
Pieņemsim, ka mūsu datu bāze mans darbinieksb ', kam ir šādas tabulas:
Ja vēlamies mainīt tabulas nosaukumu klients par darbinieku un tabulas nosaukumu kreklus par apģērbiem, izpildiet šādu paziņojumu:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Izvade
Mēs redzam, ka tabulas nosaukums klients par darbinieku un tabulas nosaukums krekli par apģērbu ir veiksmīgi pārdēvēts.
Pārdēvējiet tabulu, izmantojot ALTER priekšrakstu
Paziņojumu ALTER TABLE var izmantot arī, lai pārdēvētu esošu tabulu pašreizējā datu bāzē. Tālāk ir norādīta priekšraksta ALTER TABLE sintakse:
ALTER TABLE old_table_name RENAME TO new_table_name;
Skatiet šo vaicājumu, kas maina esošos tabulu nosaukumu apģērbus uz jauniem tabulas nosaukumu krekliem:
kā lasīt csv failu java
mysql> ALTER TABLE garments RENAME TO shirts:
Izvade
Šeit mēs redzam, ka tabulas nosaukums apģērbi ir pārdēvēti par tabulas nosaukumu krekliem.
Kā PĀRDĒVĒT pagaidu tabulu
Pagaidu tabula ļauj mums saglabāt pagaidu datus, kas ir redzami un pieejami tikai pašreizējā sesijā. Tātad, pirmkārt, mums ir jāizveido pagaidu tabula, izmantojot šādu paziņojumu:
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);
Pēc tam ievietojiet vērtības šajā tabulā:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Pēc tam palaidiet komandu show table, lai pārbaudītu pagaidu tabulu:
mysql> SELECT * FROM Students;
Tagad palaidiet šo komandu, lai mainītu pagaidu tabulas nosaukumu:
mysql> RENAME TABLE Students TO student_info;
Tas parādīs kļūdas ziņojumu, kā parādīts zemāk:
Tādējādi MySQL ļauj ALTER tabulas priekšrakstam pārdēvēt pagaidu tabulu:
mysql> ALTER TABLE Students RENAME TO student_info;
Izvade