Artikel Directory
MySQL alter tafoegje te fergrutsjen meardere fjild posysjes? Detaillearre útlis fan it gebrûk fan wizigje kolom statement
MySQL ALTER kommando
As wy de gegevenstabelnamme moatte wizigje of de gegevenstabelfjilden wizigje moatte, moatte wy it kommando MySQL ALTER brûke.
Foardat jo dizze tutorial begjinne, litte wy in tabel meitsje mei de namme: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Wiskje, tafoegje of wizigje tabelfjilden
It folgjende kommando brûkt it kommando ALTER mei de DROP-klausel om de i-kolom fan 'e tabel hjirboppe oanmakke te fallen:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP kin net brûkt wurde om in fjild te wiskjen as der mar ien fjild is yn 'e gegevenstabel.
De ADD-klausel wurdt yn MySQL brûkt om kolommen oan de gegevenstabel ta te foegjen. It folgjende foarbyld foeget it i-fjild ta oan de tabel testalter_tbl en definiearret it gegevenstype:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Nei it útfieren fan it boppesteande kommando wurdt it i-fjild automatysk tafoege oan it ein fan 'e gegevenstabelfjilden.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
As jo de lokaasje fan it nije fjild moatte opjaan, kinne jo it kaaiwurd FIRST brûke levere troch MySQL (setPositioningearste kolom), NA fjildnamme (ynsteld nei in fjild).
Besykje de folgjende ALTER TABLE statement, en nei suksesfolle útfiering, brûk SHOW COLUMNS om de wizigingen yn 'e tabelstruktuer te besjen:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
De kaaiwurden FIRST en AFTER wurde allinich brûkt yn 'e ADD-klausule, dus as jo de posysje fan in gegevenstabelfjild weromsette wolle, moatte jo earst DROP brûke om it fjild te wiskjen en dan ADD brûke om it fjild ta te foegjen en de posysje yn te stellen.
Feroarje fjild type en namme
As jo it fjildtype en namme moatte wizigje, kinne jo de MODIFY- of CHANGE-klausule brûke yn it kommando ALTER.
Om bygelyks it type fjild c te feroarjen fan CHAR(1) nei CHAR(10), fiere it folgjende kommando út:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Mei de CHANGE-klausule is de syntaksis hiel oars.Fuort nei it kaaiwurd CHANGE is de namme fan it fjild dat jo wizigje wolle, en spesifisearje dan de nije fjildnamme en type.Besykje it folgjende foarbyld:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Effekt fan ALTER TABLE op nul- en standertwearden
As jo in fjild wizigje, kinne jo opjaan oft jo allinich opnimme of as jo in standertwearde ynstelle moatte.
It folgjende foarbyld spesifisearret dat fjild j NOT NULL is en de standertwearde is 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
As jo gjin standertwearde ynstelle, sil MySQL automatysk it fjild standert op NULL ynstelle.
Feroarje fjild standert wearde
Jo kinne ALTER brûke om de standertwearde fan in fjild te feroarjen, besykje de folgjende foarbylden:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Jo kinne ek it kommando ALTER brûke mei de DROP-klausel om de standertwearde fan in fjild te ferwiderjen, lykas yn it folgjende foarbyld:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
It wizigjen fan it gegevenstabeltype kin dien wurde mei it kommando ALTER en de TYPE-klausule.Besykje it folgjende foarbyld, wêr't wy it type fan 'e tabel testalter_tbl feroarje nei MYISAM:
Tink derom:Om it datatabeltype te besjen, kinne jo de SHOW TABLE STATUS statement brûke.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Tabelnamme wizigje
As jo de namme fan 'e gegevenstabel moatte wizigje, kinne jo de RENAME-klausule brûke yn' e ALTER TABLE-statement om dit te dwaan.
Besykje it folgjende foarbyld om de gegevenstabel testalter_tbl omneame nei alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
It kommando ALTER kin ek brûkt wurde om yndeksen op MySQL-tabellen te meitsjen en te wiskjen, dy't wy yn 'e folgjende haadstikken sille dekke.
feroarje oare gebrûk
Feroarje de opslachmotor: wizigje it nei myisam
alter table tableName engine=myisam;
Fuortsmite frjemde kaai beheining: keyName is in frjemde kaai alias
alter table tableName drop foreign key keyName;
De relative posysje fan it wizige fjild: hjir is namme1 it fjild dat jo wizigje wolle, type1 is it orizjinele type fan it fjild, en jo kinne ien kieze fan earste en nei, dy't dúdlik wêze moatte, earst wurdt earst pleatst, en nei is pleatst efter it fjild namme2
alter table tableName modify name1 type1 first|after name2;
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) dielde "MySQL alter tafoegje om meardere fjildposysjes te fergrutsjen? Detaillearre útlis fan it gebrûk fan 'e Ferklearring fan' e wizigje kolom" is nuttich foar jo.
Wolkom om de keppeling fan dit artikel te dielen:https://www.chenweiliang.com/cwl-495.html
Wolkom by it Telegram-kanaal fan Chen Weiliang's blog om de lêste updates te krijen!
📚 Dizze hantlieding befettet enoarme wearde, 🌟Dit is in seldsume kâns, mis it net! ⏰⌛💨
Diel en like as jo wolle!
Jo dielen en likes binne ús trochgeande motivaasje!