Néha az oszlopnév értelmetlen, ezért át kell nevezni vagy módosítani kell az oszlop nevét. A MySQL hasznos szintaxist biztosít, amely át tudja nevezni a táblázat egy vagy több oszlopát. Néhány jogosultság szükséges az oszlop átnevezése előtt, például az ALTER és a DROP utasításjogosultságok.
A MySQL kétféleképpen nevezheti át az oszlop nevét:
- A CHANGE utasítás használatával
- A RENAME utasítás használata
A VÁLTOZTATÁSI nyilatkozat használata:
A következő szintaxis illusztrálja az oszlop átnevezését a CHANGE utasítással:
java priorityqueue
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name Data Type;
Ebben a szintaxisban láthatjuk, hogy szükség lehet az összes oszlopattribútum újraspecifikálására. Ez a szintaxis lehetővé teszi az oszlop adattípusainak megváltoztatását is. Néha azonban a CHANGE utasításnak a következő hátrányai lehetnek:
- Előfordulhat, hogy az oszlopattribútumok összes információja nem érhető el az alkalmazás számára az átnevezéshez.
- Fennáll a véletlen adattípus-módosítás veszélye, amely az alkalmazás adatvesztését eredményezheti.
Példa
Nézzük meg, hogyan működik a CHANGE utasítás MySQL oszlop átnevezéséhez a különféle példákon keresztül. Tegyük fel, hogy van egy nevű táblázatunk egyensúly amely a következő adatokat tartalmazza:
Valamilyen okból meg kell változtatnunk a oszlopnév fiók_szám az adattípusával együtt . Ebben az esetben először ellenőrizzük a táblázat szerkezetét a LEÍRÁS a következő nyilatkozatot:
Ezen a képen láthatjuk, hogy az oszlopnév adattípusa fiók_szám van int . És ezt az oszlopnevet úgy szeretnénk megváltoztatni, mint számlaszám és adattípusa mint int to varchar . Így ehhez végrehajthatjuk az alábbi utasítást:
string tömbbe java
mysql> ALTER TABLE balance CHANGE COLUMN account_num account_no VARCHAR(25);
A fenti parancs végrehajtása után a DESCRIBE utasítás ismételt használatával ellenőrizhetjük. Az alábbi képen a fiók_szám oszlop neve és adattípusa sikeresen megváltozott.
A RENAME utasítás használata:
A CHANGE utasítás hátrányának kiküszöbölésére a MySQL a következő szintaxist javasolta, amely szemlélteti az oszlopnév megváltoztatását RENAME utasítással:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
Példa
Nézzük meg, hogyan működik a RENAME utasítás a MySQL-ben az oszlopnév megváltoztatásához a különféle példákon keresztül. Tegyük fel, hogy van egy nevű táblázatunk vevő amely a következő adatokat tartalmazza:
Tegyük fel, hogy meg akarjuk változtatni az oszlopnév-fiókot ezzel számlaszám adattípusainak megváltoztatása nélkül. Ezt az alábbi utasítás végrehajtásával tehetjük meg:
mysql> ALTER TABLE customer RENAME COLUMN account to account_no;
A fenti parancs végrehajtása után a parancs segítségével ellenőrizhetjük KIVÁLASZTÁS ismét kijelentés. Az alábbi képen az oszlopnév-fiók sikeresen megváltozott.
Több oszlop átnevezése
A MySQL azt is lehetővé teszi, hogy egyetlen utasításon belül módosítsuk a több oszlop nevét. Ha több oszlopnevet szeretnénk átnevezni, használhatjuk az alábbi szintaxist:
ALTER TABLE table_name CHANGE old_column_name1 new_column_name1 Data Type, CHANGE old_column_name2 new_column_name2 Data Type, ... ... CHANGE old_column_nameN new_column_nameN Data Type;
VAGY
ALTER TABLE table_name RENAME COLUMN old_column_name1 TO new_column_name1, RENAME COLUMN old_column_name2 TO new_column_name2, ... ... RENAME COLUMN old_column_nameN TO new_column_nameN;
Példa
Tegyük fel, hogy változtatni akarunk oszlopnevek id és ügyfél_neve tól vásárlói asztal . Több oszlopnév megváltoztatásához egyetlen utasításon belül, a következőképpen használhatjuk az utasítást:
mysql> ALTER TABLE customer CHANGE id cust_id int, CHANGE customer_name cust_name varchar(45);
A fenti parancs végrehajtása után a SELECT utasítással ismét ellenőrizhetjük. Az alábbi képen az oszlopnév azonosítója és az ügyfél_neve sikeresen megváltozott:
mergesort java
Változtassuk meg ismét a jelenleg módosító oszlopnevet a RENAME COLUMN utasítással az alábbiak szerint:
mysql> ALTER TABLE customer RENAME COLUMN cust_id TO id, RENAME COLUMN cust_name TO customer_name;
A fenti parancs végrehajtása után a DESCRIBE utasítás ismételt használatával ellenőrizhetjük. Az alábbi képen a oszlop neve cust_id és cust_name sikeresen megváltozott:
Ebben a cikkben megismerkedtünk a MySQL RENAME oszlop bemutatásával és az oszlopnév megváltoztatásával egy megadott táblában, valamint egy lekérdezési példával a jobb megértés érdekében.