MySQL preimenuj tablicu

MySQL preimenuj tablicu

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

MySQL preimenuj tablicu

Zatim izvršite sljedeću sintaksu da promijenite naziv tablice:

 mysql> RENAME employee TO customer;  

Izlaz

Vidjet ćemo da će se tablica pod nazivom 'zaposlenik' promijeniti u novu tablicu pod nazivom 'kupac':

MySQL preimenuj tablicu

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:

MySQL preimenuj tablicu

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.

MySQL preimenuj tablicu

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:

 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.

MySQL preimenuj tablicu

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:

MySQL preimenuj tablicu

Dakle, MySQL dopušta naredbu ALTER table za preimenovanje privremene tablice:

 mysql> ALTER TABLE Students RENAME TO student_info;  

Izlaz

MySQL preimenuj tablicu