Ponekad je naziv naše tablice besmislen, pa je potrebno preimenovati ili promijeniti naziv tablice. MySQL pruža korisnu sintaksu koja može preimenovati jednu ili više tablica u trenutnoj bazi podataka.
Sintaksa
Sljedeća je sintaksa koja se koristi za promjenu naziva tablice:
mysql> RENAME old_table TO new_table;
Evo, to moramo osigurati novi_ime_tablice ne smije postojati, i ime_stare_tablice treba biti prisutan u bazi podataka. U suprotnom, izbacit će poruku o pogrešci. Treba osigurati da tablica nije zaključana kao i da nema aktivnih transakcija prije izvršavanja ove naredbe.
NAPOMENA: Ako koristimo naredbu RENAME TABLE, potrebno je imati privilegije ALTER i DROP TABLE za postojeću tablicu. Također, ova izjava ne može promijeniti naziv privremene tablice.
Također možemo koristiti MySQL PREIMENOVANJE TABLICE naredbu za promjenu više od jednog naziva tablice s jednom naredbom, kao što je prikazano u nastavku:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Od MySQL 8.0.13 verziji, možemo promijeniti stari naziv tablice zaključan naredbom LOCK i također koristi klauzulu WRITE LOCK. Na primjer, sljedeće su važeće izjave:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Sljedeće izjave nisu dopuštene:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Prije verzije MySQL 8.0.13, ne možemo promijeniti naziv tablice koji je bio zaključan naredbom LOCK TABLE.
MySQL također koristi naredbu RENAME TABLE za premještanje tablice iz jedne baze podataka u drugu bazu podataka, što je prikazano u nastavku:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Primjer MySQL RENAME TABLE
Razmotrimo kako naredba RENAME TABLE radi u MySQL-u kroz razne primjere. Pretpostavimo da imamo tablicu pod imenom ZAPOSLENIK , te iz nekog razloga postoji potreba da se promijeni u tablicu pod nazivom KUPAC .
Naziv tablice: zaposlenik
Zatim izvršite sljedeću sintaksu da promijenite naziv tablice:
mysql> RENAME employee TO customer;
Izlaz
java lambda izrazi
Vidjet ćemo da će se tablica pod nazivom 'zaposlenik' promijeniti u novu tablicu pod nazivom 'kupac':
U gornjem izlazu možemo vidjeti da će, ako koristimo naziv tablice zaposlenik nakon izvršavanja naredbe RENAME TABLE, izbaciti poruku o pogrešci.
Kako preimenovati više tablica
Izjava RENAME TABLE u MySQL-u nam također omogućuje promjenu više od jednog naziva tablice unutar jedne izjave. Pogledajte izjavu u nastavku:
Pretpostavimo da naša baza podataka ' moj zaposlenikb ' koji ima sljedeće tablice:
Ako želimo promijeniti naziv stola kupca u zaposlenika, a naziv stola majice u odjevne predmete, izvršimo sljedeću naredbu:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Izlaz
Vidimo da su naziv tablice kupac u zaposlenik i naziv tablice košulje u odjevne predmete uspješno preimenovani.
Preimenujte tablicu pomoću naredbe ALTER
Izjava ALTER TABLE također se može koristiti za preimenovanje postojeće tablice u trenutnoj bazi podataka. Sljedeća je sintaksa naredbe ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Pogledajte sljedeći upit koji mijenja postojeću odjeću s nazivom tablice u nove košulje s nazivom tablice:
nedostaci vezani uz internet
mysql> ALTER TABLE garments RENAME TO shirts:
Izlaz
Ovdje možemo vidjeti da su odjevni predmeti s nazivom stola preimenovani u košulje s nazivom stola.
Kako preimenovati privremenu tablicu
Privremena tablica omogućuje nam čuvanje privremenih podataka koji su vidljivi i dostupni samo u trenutnoj sesiji. Dakle, prvo moramo stvoriti privremenu tablicu pomoću sljedeće izjave:
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);
Zatim umetnite vrijednosti u ovu tablicu:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Zatim pokrenite naredbu show table da provjerite privremenu tablicu:
mysql> SELECT * FROM Students;
Sada pokrenite sljedeću naredbu da promijenite naziv privremene tablice:
mysql> RENAME TABLE Students TO student_info;
Izbacit će poruku o pogrešci, kao što je prikazano u nastavku:
Dakle, MySQL dopušta naredbu ALTER table za preimenovanje privremene tablice:
mysql> ALTER TABLE Students RENAME TO student_info;
Izlaz