MySQL ibiddel żid biex iżżid il-pożizzjonijiet tal-qasam multipli? Spjegazzjoni dettaljata tal-użu tad-dikjarazzjoni tal-kolonna modifika

MySQL tbiddel żid biex iżżid pożizzjonijiet multipli fil-qasam? Spjegazzjoni dettaljata tal-użu tad-dikjarazzjoni tal-kolonna tal-modifika

MySQL ALTER kmand

Meta rridu nimmodifikaw l-isem tat-tabella tad-dejta jew nimmodifikaw l-oqsma tat-tabella tad-dejta, irridu nużaw il-kmand ALTER MySQL.

Qabel ma nibdew dan it-tutorja, ejjew l-ewwel noħolqu tabella bl-isem: 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)

Ħassar, żid jew immodifika l-oqsma tat-tabella

Il-kmand li ġej juża l-kmand ALTER u l-klawżola DROP biex iħassar il-qasam i tat-tabella maħluqa hawn fuq:

mysql> ALTER TABLE testalter_tbl  DROP i;

Jekk fadal qasam wieħed biss fit-tabella tad-dejta, DROP ma jistax jintuża biex jitħassar il-qasam.

Il-klawżola ADD tintuża fil-MySQL biex iżżid kolonni mat-tabella tad-dejta. L-eżempju li ġej iżid il-qasam i mat-tabella testalter_tbl u jiddefinixxi t-tip tad-dejta:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Wara li tesegwixxi l-kmand ta 'hawn fuq, il-qasam i se jiġi miżjud awtomatikament mat-tmiem tal-qasam tat-tabella tad-dejta.

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)

Jekk għandek bżonn tispeċifika l-post tal-qasam il-ġdid, tista’ tuża l-kelma prinċipali L-EWWEL (settpożizzjoniL-ewwel kolonna), WARA l-isem tal-qasam (issettjat wara ċertu qasam).

Ipprova l-istqarrija ALTER TABLE li ġejja, u wara eżekuzzjoni b'suċċess, uża SHOW COLUMNS biex tara bidliet fl-istruttura tat-tabella:

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;

Il-kliem prinċipali FIRST u WAFTER jintużaw biss fil-klawżola ADD, għalhekk jekk trid tirrisettja l-pożizzjoni ta 'qasam tat-tabella tad-dejta, l-ewwel trid tuża DROP biex tħassar il-qasam u mbagħad tuża ADD biex iżżid il-qasam u ssettja l-pożizzjoni.


Immodifika t-tip u l-isem tal-qasam

Jekk għandek bżonn timmodifika t-tip u l-isem tal-qasam, tista 'tuża l-klawżola MODIFY jew CHANGE fil-kmand ALTER.

Pereżempju, biex tbiddel it-tip ta' qasam c minn CHAR(1) għal CHAR(10), tista' tesegwixxi l-kmand li ġej:

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

Bil-klawżola CHANGE, is-sintassi hija pjuttost differenti. Wara l-keyword CHANGE, segwi l-isem tal-qasam li trid timmodifika, u mbagħad speċifika l-isem u t-tip tal-qasam il-ġdid. Ipprova l-eżempju li ġej:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effetti ta 'ALTER TABLE fuq valuri Null u valuri awtomatiċi

Meta timmodifika qasam, tista' tispeċifika jekk għandhiex tinkludih jew jekk tissettjax valur default.

Fl-eżempju li ġej, il-qasam speċifikat j MHUX NULL u l-valur default huwa 100.

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

Jekk ma tissettjax valur default, MySQL awtomatikament issettja l-qasam għal NULL b'mod awtomatiku.


Immodifika l-valur default tal-qasam

Tista' tuża ALTER biex timmodifika l-valur default ta' qasam. Ipprova l-eżempju li ġej:

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)

Tista 'wkoll tuża l-kmand ALTER u l-klawżola DROP biex tħassar il-valur default ta' qasam, kif muri fl-eżempju li ġej:

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:

Biex timmodifika t-tip tat-tabella tad-dejta, tista' tuża l-kmand ALTER u l-klawżola TYPE. Ipprova l-eżempju li ġej, aħna nibdlu t-tip ta 'tabella testalter_tbl għal MYISAM:

Nota:Biex tara t-tip ta' tabella tad-dejta, tista' tuża l-istqarrija SHOW TABLE STATUS.

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)

Ibdel l-isem tat-tabella

Jekk għandek bżonn timmodifika l-isem tat-tabella tad-dejta, tista' tuża l-klawżola RENAME fid-dikjarazzjoni ALTER TABLE.

Ipprova l-eżempju li ġej biex tibdel l-isem tat-tabella tad-dejta testalter_tbl għal alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Il-kmand ALTER jista' jintuża wkoll biex jinħolqu u jitħassru indiċi fuq it-tabelli tad-dejta MySQL.Se nintroduċu din il-funzjoni fil-kapitolu li jmiss.

jibdel użi oħra

Immodifika l-magna tal-ħażna: immodifikaha għal myisam

alter table tableName engine=myisam;

Ħassar restrizzjonijiet taċ-ċavetta barranija: keyName huwa alias taċ-ċavetta barranija

alter table tableName drop foreign key keyName;

Immodifika l-pożizzjoni relattiva tal-qasam: hawn name1 huwa l-qasam li trid timmodifika, tip1 huwa t-tip oriġinali tal-qasam, agħżel wieħed mill-ewwel u wara, dan għandu jkun ovvju, l-ewwel jitqiegħed l-ewwel, wara jitqiegħed wara l-isem2 qasam

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) maqsuma "MySQL ibiddel żid biex iżżid pożizzjonijiet ta' kamp multipli?" Spjegazzjoni dettaljata tal-użu tad-dikjarazzjoni tal-kolonna modifika" tkun ta' għajnuna għalik.

Merħba biex taqsam il-link ta' dan l-artikolu:https://www.chenweiliang.com/cwl-495.html

Biex tiftaħ aktar tricks moħbija🔑, merħba tingħaqad mal-kanal Telegram tagħna!

Share u like jekk jogħġobkom! L-ishma u l-likes tiegħek huma l-motivazzjoni kontinwa tagħna!

 

发表 评论

您的邮箱地址不会被公开。 Jintużaw l-oqsma meħtieġa * Tikketta

Skrollja Top