MySQL alter ychwanegu i gynyddu safleoedd maes lluosog? Esboniad manwl o'r defnydd o addasu datganiad colofn

MySQL newid ychwanegu i gynyddu safleoedd maes lluosog? Esboniad manwl o'r defnydd o addasu datganiad colofn

MySQL ALTER gorchymyn

Pan fydd angen i ni addasu enw'r tabl data neu addasu'r meysydd tabl data, mae angen i ni ddefnyddio'r gorchymyn MySQL ALTER.

Cyn dechrau'r tiwtorial hwn, gadewch i ni greu tabl o'r enw: 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)

Dileu, ychwanegu neu addasu meysydd tabl

Mae'r gorchymyn canlynol yn defnyddio'r gorchymyn ALTER gyda'r cymal DROP i ollwng colofn i y tabl a grëwyd uchod:

mysql> ALTER TABLE testalter_tbl  DROP i;

Ni ellir defnyddio DROP i ddileu maes os mai dim ond un maes sydd ar ôl yn y tabl data.

Defnyddir y cymal ADD yn MySQL i ychwanegu colofnau i'r tabl data. Mae'r enghraifft ganlynol yn ychwanegu'r maes i i'r tabl testalter_tbl ac yn diffinio'r math o ddata:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Ar ôl gweithredu'r gorchymyn uchod, mae'r maes i yn cael ei ychwanegu'n awtomatig at ddiwedd meysydd y tabl data.

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)

Os oes angen i chi nodi lleoliad y maes newydd, gallwch ddefnyddio'r allweddair FIRST a ddarperir gan MySQL (setLleolicolofn gyntaf), AR ÔL enw maes (gosod ar ôl cae).

Rhowch gynnig ar y datganiad ALTER TABLE canlynol, ac ar ôl ei weithredu’n llwyddiannus, defnyddiwch COLOFNAU DANGOS i weld y newidiadau yn strwythur y tabl:

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;

Dim ond yn y cymal ADD y defnyddir yr allweddeiriau CYNTAF ac ÔL, felly os ydych chi am ailosod safle maes tabl data mae angen i chi ddefnyddio DROP i gael gwared ar y maes ac yna ADD i ychwanegu'r maes a gosod y sefyllfa.


Addasu math ac enw maes

Os oes angen i chi addasu'r math o faes a'r enw, gallwch ddefnyddio'r cymal MODIFY neu CHANGE yn y gorchymyn ALTER.

Er enghraifft, i newid y math o faes c o CHAR(1) i CHAR(10), gweithredwch y gorchymyn canlynol:

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

Gyda'r cymal NEWID, mae'r gystrawen yn wahanol iawn.Yn syth ar ôl yr allweddair CHANGE yw enw'r maes rydych chi am ei addasu, ac yna nodwch enw a math y maes newydd.Rhowch gynnig ar yr enghraifft ganlynol:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effaith TABL NEWYDD ar Werthoedd Null a Diofyn

Pan fyddwch yn addasu maes, gallwch nodi a ddylid cynnwys yn unig neu a ddylid gosod gwerth rhagosodedig.

Mae'r enghraifft ganlynol yn nodi NAD yw maes j yn NULL a'r gwerth rhagosodedig yw 100.

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

Os na fyddwch yn gosod gwerth diofyn, bydd MySQL yn gosod y maes yn NULL yn awtomatig yn ddiofyn.


Addasu gwerth rhagosodedig maes

Gallwch ddefnyddio ALTER i newid gwerth rhagosodedig maes, rhowch gynnig ar yr enghreifftiau canlynol:

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)

Gallwch hefyd ddefnyddio'r gorchymyn ALTER gyda'r cymal DROP i ddileu gwerth rhagosodedig maes, fel yn yr enghraifft ganlynol:

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:

Gellir addasu'r math o dabl data gan ddefnyddio'r gorchymyn ALTER a'r cymal TYPE.Rhowch gynnig ar yr enghraifft ganlynol, lle rydym yn newid y math o dabl testalter_tbl i MYISAM:

Nodyn:I weld y math o dabl data, gallwch ddefnyddio'r datganiad STATWS TABL DANGOS.

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)

Addasu enw tabl

Os oes angen i chi addasu enw'r tabl data, gallwch ddefnyddio'r cymal AILENWI yn y datganiad TABL ALTER i wneud hynny.

Rhowch gynnig ar yr enghraifft ganlynol i ailenwi'r tabl data testalter_tbl i alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Gellir defnyddio'r gorchymyn ALTER hefyd i greu a dileu mynegeion ar dablau MySQL, y byddwn yn ymdrin â nhw yn y penodau nesaf.

newid defnyddiau eraill

Addasu'r injan storio: ei addasu i myisam

alter table tableName engine=myisam;

Dileu cyfyngiad allwedd tramor: alias allwedd tramor yw keyName

alter table tableName drop foreign key keyName;

Safle cymharol y maes wedi'i addasu: dyma enw 1 yw'r maes rydych chi am ei addasu, math 1 yw'r math gwreiddiol o'r maes, a gallwch ddewis un o'r cyntaf ac ar ôl, a ddylai fod yn amlwg, yn gyntaf yn cael ei osod yn gyntaf, ac ar ôl yw gosod ar ôl y maes enw2

alter table tableName modify name1 type1 first|after name2;

Blog Chen Weiliang Gobeithio ( https://www.chenweiliang.com/ ) a rennir "Mae MySQL yn newid ychwanegu i gynyddu nifer o safleoedd maes? Mae Eglurhad Manwl o Ddefnydd y Datganiad Addasu Colofn" yn ddefnyddiol i chi.

Croeso i chi rannu dolen yr erthygl hon:https://www.chenweiliang.com/cwl-495.html

Croeso i sianel Telegram o blog Chen Weiliang i gael y diweddariadau diweddaraf!

🔔 Byddwch y cyntaf i gael y "Canllaw Defnydd Offer AI Marchnata Cynnwys ChatGPT" gwerthfawr yng nghyfeiriadur uchaf y sianel! 🌟
📚 Mae'r canllaw hwn yn cynnwys gwerth enfawr, 🌟Mae hwn yn gyfle prin, peidiwch â'i golli! ⏰⌛💨
Rhannwch a hoffwch os hoffech chi!
Eich rhannu a'ch hoff bethau yw ein cymhelliant parhaus!

 

发表 评论

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. 必填 项 已 用 * Label

sgroliwch i'r brig