MySQL chanje ajoute pou ogmante plizyè pozisyon jaden? Eksplikasyon detaye sou itilizasyon modifye kolòn deklarasyon

Miskl alter ajoute pou ogmante plizyè pozisyon jaden? Eksplikasyon detaye sou itilizasyon modifye kolòn deklarasyon

Miskl ALTER lòd

Lè nou bezwen modifye non tab done yo oswa modifye jaden tab done yo, nou bezwen sèvi ak lòd ALTER MySQL la.

Anvan w kòmanse leson patikilye sa a, ann kreye yon tab ki rele: 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)

Efase, ajoute oswa modifye jaden tab yo

Kòmandman sa a sèvi ak kòmand ALTER ak kloz DROP pou lage kolòn i nan tablo ki te kreye pi wo a:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP pa ka itilize pou efase yon jaden si gen yon sèl jaden ki rete nan tablo done a.

Yo itilize kloz ADD nan MySQL pou ajoute kolòn nan tab done a. Egzanp sa a ajoute jaden i nan tab testalter_tbl epi defini kalite done:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Apre ou fin egzekite kòmandman ki anwo a, yo ajoute jaden i otomatikman nan fen jaden tab done yo.

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)

Si ou bezwen presize kote nouvo jaden an, ou ka itilize mo kle FIRST ki bay MySQL (setPozisyonpremye kolòn), APRE non jaden (mete apre yon jaden).

Eseye deklarasyon ALTER TABLE sa a, epi apre ekzekisyon siksè, sèvi ak SHOW COLUMNS pou wè chanjman ki fèt nan estrikti tab la:

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;

Mo kle FIRST ak AFTER yo itilize sèlman nan kloz ADD, kidonk si ou vle reset pozisyon yon jaden tab done, ou bezwen itilize DROP pou efase jaden an epi sèvi ak ADD pou ajoute jaden an epi mete pozisyon an.


Modifye kalite jaden ak non

Si ou bezwen modifye kalite jaden an ak non, ou ka itilize kloz MODIFY oswa CHANGE nan lòd ALTER la.

Pa egzanp, pou chanje kalite jaden c soti nan CHAR(1) a CHAR(10), egzekite lòd sa a:

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

Avèk kloz CHANGE la, sentaks la trè diferan.Touswit apre mo kle CHANGE a se non jaden an ou vle modifye, ak Lè sa a, presize nouvo non ak kalite jaden an.Eseye egzanp sa a:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Efè ALTER TABLE sou Valè Nil ak Default

Lè ou modifye yon jaden, ou ka presize si w dwe enkli sèlman oswa si w ap mete yon valè default.

Egzanp sa a espesifye ke jaden j PA NIL ak valè default la se 100.

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

Si ou pa mete yon valè default, MySQL pral otomatikman mete jaden an NULL pa default.


Modifye valè default jaden an

Ou ka itilize ALTER pou chanje valè default yon jaden, eseye egzanp sa yo:

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)

Ou ka itilize tou kòmand ALTER ak kloz DROP pou retire valè default yon jaden, tankou nan egzanp sa a:

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:

Modifye kalite tab done a ka fè lè l sèvi avèk kòmand ALTER ak kloz TYPE la.Eseye egzanp sa a, kote nou chanje kalite tab testalter_tbl an MYISAM:

Remak:Pou wè kalite tab done a, ou ka itilize deklarasyon SHOW TABLE STATUS la.

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)

Modifye non tab la

Si ou bezwen modifye non tab done a, ou ka itilize kloz RENAME nan deklarasyon ALTER TABLE pou fè sa.

Eseye egzanp sa a pou chanje non tab done testalter_tbl pou alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Kòmand ALTER an ka itilize tou pou kreye ak efase endèks sou tab done MySQL, ke nou pral prezante nan pwochen chapit yo.

chanje lòt itilizasyon

Modifye motè depo a: modifye li nan myisam

alter table tableName engine=myisam;

Retire kontrent kle etranje: keyName se yon alyas kle etranje

alter table tableName drop foreign key keyName;

Pozisyon relatif nan jaden an modifye: isit la name1 se jaden an ou vle modifye, type1 se kalite orijinal la nan jaden an, epi ou ka chwazi youn nan premye ak apre, ki ta dwe evidan, premye yo mete an premye, epi apre se. mete apre jaden an name2

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) pataje "MySQL chanje ajoute pou ogmante plizyè pozisyon jaden? Eksplikasyon detaye sou Itilizasyon Deklarasyon Kolòn Modifye a" itil ou.

Byenvini pataje lyen atik sa a:https://www.chenweiliang.com/cwl-495.html

Byenveni nan chanèl Telegram blog Chen Weiliang a pou jwenn dènye mizajou yo!

🔔 Se pou premye moun ki jwenn bonjan "ChatGPT Content Maketing AI Itilizasyon Zouti Gid" nan anyè chanèl ki pi wo a! 🌟
📚 Gid sa a gen anpil valè, 🌟Sa a se yon opòtinite ki ra, pa rate li! ⏰⌛💨
Pataje epi like siw renmen!
Pataje w ak renmen ou se motivasyon kontinyèl nou!

 

kòmantè

Adrès imèl ou pa pral pibliye. Jaden obligatwa yo te itilize * Mete etikèt sou

woule nan tèt