Včasih je ime naše tabele nepomembno, zato je potrebno preimenovati ali spremeniti ime tabele. MySQL ponuja uporabno sintakso, ki lahko preimenuje eno ali več tabel v trenutni bazi podatkov.
Sintaksa
Za spremembo imena tabele se uporablja naslednja sintaksa:
mysql> RENAME old_table TO new_table;
Tu se moramo prepričati novo_ime_tabele ne sme obstajati in staro_ime_tabele mora biti prisoten v bazi podatkov. V nasprotnem primeru se prikaže sporočilo o napaki. Zagotoviti je treba, da tabela ni zaklenjena in da ni aktivnih transakcij pred izvedbo tega stavka.
OPOMBA: Če uporabimo stavek RENAME TABLE, mora imeti privilegije ALTER in DROP TABLE za obstoječo tabelo. Poleg tega ta stavek ne more spremeniti imena začasne tabele.
Uporabljamo lahko tudi MySQL PREIMENUJTE TABELO za spremembo več kot enega imena tabele z enim samim stavkom, kot je prikazano spodaj:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Iz MySQL 8.0.13 različico, lahko spremenimo staro ime tabele, zaklenjeno s stavkom LOCK, in uporablja tudi klavzulo WRITE LOCK. Na primer, naslednje so veljavne izjave:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Naslednje izjave niso dovoljene:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Pred različico MySQL 8.0.13 ne moremo spremeniti imena tabele, ki je bilo zaklenjeno s stavkom LOCK TABLE.
MySQL uporablja tudi stavek RENAME TABLE za premikanje tabele iz ene baze podatkov v drugo bazo podatkov, kar je prikazano spodaj:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Primer MySQL RENAME TABLE
Dovolite nam, da skozi različne primere razumemo, kako stavek RENAME TABLE deluje v MySQL. Recimo, da imamo tabelo z imenom DELAVEC , in zaradi nekega razloga ga je treba spremeniti v tabelo z imenom STRANKA .
Ime tabele: zaposleni
Nato izvedite naslednjo sintakso, da spremenite ime tabele:
mysql> RENAME employee TO customer;
Izhod
javascript trim substring
Videli bomo, da bo tabela z imenom 'employee' spremenjena v novo tabelo z imenom 'customer':
V zgornjem izhodu lahko vidimo, da če uporabimo ime tabele employee po izvedbi stavka RENAME TABLE, bo vrglo sporočilo o napaki.
Kako preimenovati več tabel
Stavek RENAME TABLE v MySQL nam prav tako omogoča, da spremenimo več kot eno ime tabele znotraj enega stavka. Oglejte si spodnjo izjavo:
Recimo, da naša baza podatkov ' myemployeedb ' ki ima naslednje tabele:
Če želimo spremeniti ime mize stranka v zaposlenega in srajce z imenom mize v oblačila, izvedite naslednji stavek:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Izhod
Vidimo lahko, da sta ime tabele stranka v zaposlenega in ime tabele srajce v oblačila uspešno preimenovana.
Preimenujte tabelo s stavkom ALTER
Stavek ALTER TABLE lahko uporabite tudi za preimenovanje obstoječe tabele v trenutni bazi podatkov. Spodaj je sintaksa stavka ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Oglejte si naslednjo poizvedbo, ki spremeni obstoječa oblačila z imenom tabele v nove srajce z imenom tabele:
program v java
mysql> ALTER TABLE garments RENAME TO shirts:
Izhod
Tukaj lahko vidimo, da so oblačila z imenom tabele preimenovana v srajce z imenom tabele.
Kako preimenovati začasno tabelo
Začasna tabela nam omogoča, da hranimo začasne podatke, ki so vidni in dostopni le v trenutni seji. Torej, najprej moramo ustvariti začasno tabelo z naslednjim stavkom:
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);
Nato v to tabelo vstavite vrednosti:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Nato zaženite ukaz show table, da preverite začasno tabelo:
mysql> SELECT * FROM Students;
Zdaj zaženite naslednji ukaz, da spremenite ime začasne tabele:
mysql> RENAME TABLE Students TO student_info;
Prikaže se sporočilo o napaki, kot je prikazano spodaj:
Tako MySQL dovoljuje stavek tabele ALTER za preimenovanje začasne tabele:
mysql> ALTER TABLE Students RENAME TO student_info;
Izhod