Badilisha MySQL kuongeza kuongeza nafasi nyingi za uwanja? Ufafanuzi wa kina wa matumizi ya taarifa ya safu wima ya kurekebisha

MySQL alter add kuongeza nafasi nyingi za uwanja? Ufafanuzi wa kina wa matumizi ya taarifa ya safu wima ya kurekebisha

MySQL ALTER amri

Tunapohitaji kurekebisha jina la jedwali la data au kurekebisha sehemu za jedwali la data, tunahitaji kutumia amri ya MySQL ALTER.

Kabla ya kuanza mafunzo haya, hebu tuunde jedwali linaloitwa: 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)

Futa, ongeza au urekebishe sehemu za jedwali

Amri ifuatayo hutumia amri ya ALTER na kifungu cha DROP kuacha safu wima ya jedwali iliyoundwa hapo juu:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP haiwezi kutumika kufuta sehemu ikiwa kuna sehemu moja pekee iliyosalia kwenye jedwali la data.

Kifungu cha ADD kinatumika katika MySQL kuongeza safu wima kwenye jedwali la data. Mfano ufuatao unaongeza sehemu ya i kwenye jedwali testalter_tbl na kufafanua aina ya data:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Baada ya kutekeleza amri hapo juu, uwanja wa i huongezwa kiotomati hadi mwisho wa uwanja wa jedwali la 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)

Ikiwa unahitaji kutaja eneo la uga mpya, unaweza kutumia neno kuu KWANZA lililotolewa na MySQL (setKuweka nafasisafu wima ya kwanza), BAADA ya jina la sehemu (iliyowekwa baada ya sehemu).

Jaribu kauli ifuatayo ya ALTER TABLE, na baada ya kutekelezwa kwa mafanikio, tumia SHOW COLUMNS kuona mabadiliko katika muundo wa jedwali:

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;

Maneno muhimu ya KWANZA na BAADA yanatumika tu katika kifungu cha ADD, kwa hivyo ikiwa unataka kuweka upya nafasi ya uga wa jedwali la data, unahitaji kutumia DROP kufuta uga kisha utumie ADD kuongeza uga na kuweka nafasi.


Badilisha aina ya uwanja na jina

Ikiwa unahitaji kurekebisha aina ya uga na jina, unaweza kutumia kipengele cha MODIFY au CHANGE katika amri ya ALTER.

Kwa mfano, kubadilisha aina ya uga c kutoka CHAR(1) hadi CHAR(10), tekeleza amri ifuatayo:

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

Kwa kifungu cha BADILISHA, sintaksia ni tofauti sana.Mara tu baada ya neno kuu la BADILISHA ni jina la uwanja unaotaka kurekebisha, na kisha taja jina la uwanja mpya na aina.Jaribu mfano ufuatao:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Madhara ya ALTER TABLE kwenye Thamani Batili na Chaguomsingi

Unaporekebisha sehemu, unaweza kubainisha ikiwa itajumuisha pekee au kuweka thamani chaguomsingi.

Mfano ufuatao unabainisha kuwa sehemu j SIYO BATILI na thamani chaguo-msingi ni 100.

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

Ikiwa hutaweka thamani chaguo-msingi, MySQL itaweka uga kiotomatiki kuwa NULL kwa chaguo-msingi.


Rekebisha thamani chaguo-msingi ya sehemu

Unaweza kutumia ALTER kubadilisha thamani chaguo-msingi ya uga, jaribu mifano ifuatayo:

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)

Unaweza pia kutumia amri ya ALTER na kifungu cha DROP kuondoa dhamana chaguo-msingi ya uga, kama ilivyo katika mfano ufuatao:

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:

Kurekebisha aina ya jedwali la data kunaweza kufanywa kwa kutumia amri ya ALTER na kifungu cha TYPE.Jaribu mfano ufuatao, ambapo tunabadilisha aina ya jedwali testalter_tbl kuwa MYISAM:

Kumbuka:Kuangalia aina ya jedwali la data, unaweza kutumia taarifa ya HALI YA TABLE TABLE.

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)

Badilisha jina la jedwali

Ikiwa unahitaji kurekebisha jina la jedwali la data, unaweza kutumia RENAME kifungu katika taarifa ya ALTER TABLE kufanya hivyo.

Jaribu mfano ufuatao ili kubadilisha jedwali la data testalter_tbl kuwa alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Amri ya ALTER pia inaweza kutumika kuunda na kufuta faharasa kwenye jedwali la data la MySQL, ambalo tutalitambulisha katika sura zinazofuata.

kubadilisha matumizi mengine

Rekebisha injini ya kuhifadhi: irekebishe kuwa myisam

alter table tableName engine=myisam;

Ondoa kizuizi cha ufunguo wa kigeni: KeyName ni jina la ufunguo wa kigeni

alter table tableName drop foreign key keyName;

Nafasi ya jamaa ya uwanja uliorekebishwa: hapa jina1 ndio uwanja unaotaka kurekebisha, type1 ndio aina asili ya uwanja, na unaweza kuchagua moja ya kwanza na baada, ambayo inapaswa kuwa dhahiri, ya kwanza imewekwa kwanza, na baada ya kuwekwa baada ya jina2 shamba

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ilishirikiwa "Mabadiliko ya MySQL ongeza ili kuongeza nafasi nyingi za uwanja? Ufafanuzi wa Kina wa Matumizi ya Taarifa ya Safu ya Kurekebisha" ni muhimu kwako.

Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-495.html

Karibu kwenye chaneli ya Telegramu ya blogu ya Chen Weiliang ili kupata masasisho mapya zaidi!

🔔 Kuwa wa kwanza kupata "Mwongozo wa Matumizi ya Zana ya AI ya Uuzaji wa Maudhui ya ChatGPT" katika saraka ya juu ya kituo! 🌟
📚 Mwongozo huu una thamani kubwa, 🌟Hii ni fursa adimu, usiikose! ⏰⌛💨
Share na like ukipenda!
Kushiriki kwako na kupenda kwako ndio motisha yetu inayoendelea!

 

发表 评论

Anwani yako ya barua pepe haitachapishwa. 必填 项 已 用 * 标注

tembeza juu