Cyfeiriadur Erthygl
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!
📚 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!