MySQL alter tafoegje om meardere fjildposysjes te fergrutsjen? Detaillearre útlis fan it gebrûk fan wizigje kolom statement

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!

🔔 Wês de earste om de weardefolle "ChatGPT Content Marketing AI Tool Usage Guide" te krijen yn 'e kanaaltopmap! 🌟
📚 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!

 

发表 评论

Jo e-postadres wurdt net publisearre. Ferplichte fjilden wurde brûkt * Etiket

rôlje nei boppen