Ang pag-usab sa MySQL idugang aron madugangan ang daghang mga posisyon sa uma? Detalyadong katin-awan sa paggamit sa pag-usab sa pahayag sa kolum

MySQL usba ang pagdugang aron madugangan ang daghang mga posisyon sa uma? Detalyadong katin-awan sa paggamit sa pag-usab sa pahayag sa kolum

MySQL ALTER nga sugo

Kung kinahanglan natong usbon ang ngalan sa lamesa sa datos o usbon ang mga field sa lamesa sa datos, kinahanglan natong gamiton ang MySQL ALTER nga sugo.

Sa wala pa magsugod kini nga panudlo, maghimo kita usa ka lamesa nga ginganlag: 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)

Pagtangtang, pagdugang o pag-usab sa mga natad sa lamesa

Ang mosunod nga sugo naggamit sa ALTER command uban sa DROP clause aron ihulog ang i column sa lamesa nga gihimo sa ibabaw:

mysql> ALTER TABLE testalter_tbl  DROP i;

Ang DROP dili magamit sa pagtangtang sa usa ka field kung adunay usa na lang ka field nga nahabilin sa data table.

Ang ADD clause gigamit sa MySQL aron idugang ang mga column sa data table.

mysql> ALTER TABLE testalter_tbl ADD i INT;

Human sa pagpatuman sa sugo sa ibabaw, ang i field awtomatik nga idugang ngadto sa katapusan sa data table fields.

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)

Kung kinahanglan nimo ipiho ang lokasyon sa bag-ong uma, mahimo nimong gamiton ang keyword nga UNANG gihatag sa MySQL (setPagbutang sa posisyonuna nga kolum), HUMAN ang ngalan sa uma (ibutang pagkahuman sa usa ka uma).

Sulayi ang mosunod nga ALTER TABLE nga pahayag, ug pagkahuman sa malampuson nga pagpatuman, gamita ang SHOW COLUMNS aron makita ang mga pagbag-o sa istruktura sa lamesa:

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;

Ang FIRST ug AFTER nga mga keyword gigamit ra sa ADD clause, busa kung gusto nimo i-reset ang posisyon sa usa ka field sa data table, kinahanglan nimo nga gamiton una ang DROP aron mapapas ang field ug dayon gamiton ang ADD aron idugang ang field ug itakda ang posisyon.


Usba ang tipo ug ngalan sa field

Kung kinahanglan nimo nga usbon ang tipo ug ngalan sa uma, mahimo nimong gamiton ang clause nga MODIFY o CHANGE sa ALTER command.

Pananglitan, aron usbon ang tipo sa field c gikan sa CHAR(1) ngadto sa CHAR(10), ipatuman ang mosunod nga sugo:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Uban sa CHANGE clause, ang syntax lahi kaayo.Diha-diha dayon human sa CHANGE keyword mao ang ngalan sa field nga gusto nimong usbon, ug dayon ipiho ang bag-ong field name ug type.Sulayi ang mosunod nga pananglitan:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Epekto sa ALTER TABLE sa Null ug Default Values

Kung imong usbon ang usa ka uma, mahimo nimong mahibal-an kung iapil lang o kung magbutang usa ka default nga kantidad.

Ang mosunod nga pananglitan nagtino nga ang field j DILI NULL ug ang default nga bili mao ang 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Kung dili ka magbutang usa ka default nga kantidad, ang MySQL awtomatiko nga magbutang sa uma sa NULL pinaagi sa default.


Usba ang field default value

Mahimo nimong gamiton ang ALTER aron usbon ang default value sa usa ka field, sulayi ang mosunod nga mga pananglitan:

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)

Mahimo usab nimo gamiton ang ALTER command gamit ang DROP clause aron makuha ang default value sa usa ka field, sama sa mosunod nga pananglitan:

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:

Ang pagbag-o sa tipo sa lamesa sa datos mahimo gamit ang ALTER command ug ang TYPE clause.Sulayi ang mosunod nga pananglitan, diin atong usbon ang tipo sa lamesa nga testalter_tbl ngadto sa MYISAM:

Hinumdomi:Aron matan-aw ang tipo sa lamesa sa datos, mahimo nimong gamiton ang SHOW TABLE STATUS nga pahayag.

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)

Usba ang ngalan sa lamesa

Kung kinahanglan nimo nga usbon ang ngalan sa talaan sa datos, mahimo nimong gamiton ang RENAME clause sa ALTER TABLE nga pahayag aron mahimo kini.

Sulayi ang mosunod nga pananglitan sa pag-usab sa ngalan sa data table testalter_tbl ngadto sa alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Ang ALTER command mahimo usab nga gamiton sa paghimo ug pagtangtang sa mga indeks sa MySQL tables, nga atong hisgotan sa sunod nga mga kapitulo.

usba ang ubang gamit

Usba ang storage engine: usba kini sa myisam

alter table tableName engine=myisam;

Kuhaa ang langyaw nga pagpugong sa yawe: ang keyName usa ka langyaw nga yawe nga alias

alter table tableName drop foreign key keyName;

Ang relatibong posisyon sa giusab nga field: dinhi ang name1 mao ang field nga gusto nimong usbon, type1 ang orihinal nga tipo sa field, ug mahimo nimong pilion ang usa sa una ug pagkahuman, nga kinahanglan nga klaro, una ibutang una, ug pagkahuman mao ang gibutang human sa ngalan2 field

alter table tableName modify name1 type1 first|after name2;

Paglaum Chen Weiliang Blog ( https://www.chenweiliang.com/ ) mipaambit sa "MySQL alter add to increase multiple field positions? Ang Detalyadong Pagpatin-aw sa Paggamit sa Pahayag sa Modify Column" makatabang kanimo.

Welcome sa pagpaambit sa link niini nga artikulo:https://www.chenweiliang.com/cwl-495.html

Malipayon nga pag-abut sa channel sa Telegram sa blog ni Chen Weiliang aron makuha ang labing bag-ong mga update!

🔔 Mahimong una nga makakuha sa bililhon nga "ChatGPT Content Marketing AI Tool Usage Guide" sa direktoryo sa taas nga channel! 🌟
📚 Kini nga giya adunay daghang kantidad, 🌟Kini usa ka talagsaon nga oportunidad, ayaw palabya ​​kini! ⏰⌛💨
Share ug like kung ganahan ka!
Ang imong pagpaambit ug pag-like mao ang among padayon nga kadasig!

 

发表 评论

Ang imong email address dili mapatik. Gigamit ang mga kinahanglanon nga uma * Label

scroll sa ibabaw