MySQL ປ່ຽນແປງເພີ່ມເພື່ອເພີ່ມຕໍາແຫນ່ງພາກສະຫນາມຫຼາຍບໍ? ຄໍາອະທິບາຍລາຍລະອຽດຂອງການນໍາໃຊ້ modify column statement

ວິທີການເພີ່ມຫຼາຍ fields ໂດຍໃຊ້ ຄຳສັ່ງ MySQL `ALTER ALTER ADD`? ຄຳອະທິບາຍລະອຽດຂອງຄຳສັ່ງ `MODIUS Column`.

MySQL ALTER ຄໍາສັ່ງ

ເມື່ອພວກເຮົາຕ້ອງການດັດແກ້ຊື່ຕາຕະລາງຂໍ້ມູນຫຼືດັດແກ້ຕາຕະລາງຂໍ້ມູນ, ພວກເຮົາຈໍາເປັນຕ້ອງໃຊ້ຄໍາສັ່ງ MySQL ALTER.

ກ່ອນທີ່ຈະເລີ່ມການສອນນີ້, ໃຫ້ພວກເຮົາສ້າງຕາຕະລາງທີ່ມີຊື່ວ່າ: 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)

ລຶບ, ເພີ່ມ ຫຼືແກ້ໄຂຊ່ອງຂໍ້ມູນຕາຕະລາງ

ຄໍາສັ່ງຕໍ່ໄປນີ້ໃຊ້ຄໍາສັ່ງ ALTER ກັບ DROP clause ເພື່ອວາງຖັນ i ຂອງຕາຕະລາງທີ່ສ້າງຂຶ້ນຂ້າງເທິງ:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP ບໍ່ສາມາດໃຊ້ເພື່ອລຶບຊ່ອງຂໍ້ມູນໃດໜຶ່ງໄດ້ ຖ້າມີຊ່ອງຂໍ້ມູນເຫຼືອຢູ່ໃນຕາຕະລາງຂໍ້ມູນເທົ່ານັ້ນ.

ADD clause ຖືກນໍາໃຊ້ໃນ MySQL ເພື່ອເພີ່ມຄໍລໍາໃສ່ຕາຕະລາງຂໍ້ມູນ. ຕົວຢ່າງຕໍ່ໄປນີ້ຈະເພີ່ມຊ່ອງ i ກັບຕາຕະລາງ testalter_tbl ແລະກໍານົດປະເພດຂໍ້ມູນ:

mysql> ALTER TABLE testalter_tbl ADD i INT;

ຫຼັງຈາກປະຕິບັດຄໍາສັ່ງຂ້າງເທິງ, ພາກສະຫນາມ i ຈະຖືກເພີ່ມໃສ່ໃນຕອນທ້າຍຂອງຕາຕະລາງຂໍ້ມູນ.

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)

ຖ້າທ່ານຕ້ອງການລະບຸຕຳແໜ່ງຂອງພາກສະໜາມໃໝ່, ທ່ານສາມາດໃຊ້ຄຳສຳຄັນ FIRST (ຕັ້ງເປັນ ຖັນທຳອິດ) ແລະ AFTER field_name (ຕັ້ງໃຫ້ຢູ່ຫຼັງພາກສະໜາມສະເພາະ) ທີ່ສະໜອງໃຫ້ ໂດຍ MySQL .

ລອງໃຊ້ຄຳສັ່ງ ALTER TABLE ຕໍ່ໄປນີ້, ແລະຫຼັງຈາກປະຕິບັດສຳເລັດແລ້ວ, ໃຊ້ SHOW COLUMNS ເພື່ອເບິ່ງການປ່ຽນແປງໃນໂຄງສ້າງຕາຕະລາງ:

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;

ຄໍາຫລັກ FIRST ແລະ AFTER ແມ່ນໃຊ້ພຽງແຕ່ໃນ ADD clause, ດັ່ງນັ້ນຖ້າທ່ານຕ້ອງການປັບຕໍາແຫນ່ງຂອງຕາຕະລາງຂໍ້ມູນ, ທ່ານຈໍາເປັນຕ້ອງໃຊ້ DROP ເພື່ອລຶບພາກສະຫນາມແລະຫຼັງຈາກນັ້ນໃຊ້ ADD ເພື່ອເພີ່ມພາກສະຫນາມແລະກໍານົດຕໍາແຫນ່ງ.


ແກ້ໄຂປະເພດ ແລະຊື່ຊ່ອງຂໍ້ມູນ

ຖ້າທ່ານຕ້ອງການແກ້ໄຂປະເພດແລະຊື່ພາກສະຫນາມ, ທ່ານສາມາດນໍາໃຊ້ຂໍ້ MODIFY ຫຼື CHANGE ໃນຄໍາສັ່ງ ALTER.

ຕົວຢ່າງ, ເພື່ອປ່ຽນປະເພດຂອງຊ່ອງຂໍ້ມູນ c ຈາກ CHAR(1) ເປັນ CHAR(10), ປະຕິບັດຄໍາສັ່ງຕໍ່ໄປນີ້:

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

ດ້ວຍ CHANGE clause, syntax ແມ່ນແຕກຕ່າງກັນຫຼາຍ.ທັນທີຫຼັງຈາກຄໍາສໍາຄັນການປ່ຽນແປງແມ່ນຊື່ຂອງພາກສະຫນາມທີ່ທ່ານຕ້ອງການແກ້ໄຂ, ແລະຫຼັງຈາກນັ້ນໃຫ້ລະບຸຊື່ພາກສະຫນາມໃຫມ່ແລະປະເພດ.ລອງໃຊ້ຕົວຢ່າງຕໍ່ໄປນີ້:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ຜົນກະທົບຂອງຕາຕະລາງ ALTER ກ່ຽວກັບຄ່າ Null ແລະຄ່າເລີ່ມຕົ້ນ

ເມື່ອທ່ານແກ້ໄຂຊ່ອງຂໍ້ມູນ, ທ່ານສາມາດກໍານົດວ່າຈະລວມເອົາພຽງແຕ່ຫຼືວ່າຈະກໍານົດຄ່າເລີ່ມຕົ້ນ.

ຕົວຢ່າງຕໍ່ໄປນີ້ລະບຸວ່າຊ່ອງຂໍ້ມູນ j ບໍ່ແມ່ນ NULL ແລະຄ່າເລີ່ມຕົ້ນແມ່ນ 100.

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

ຖ້າທ່ານບໍ່ໄດ້ຕັ້ງຄ່າເລີ່ມຕົ້ນ, MySQL ຈະຕັ້ງຊ່ອງຂໍ້ມູນເປັນ NULL ໂດຍອັດຕະໂນມັດ.


ແກ້ໄຂຄ່າເລີ່ມຕົ້ນຂອງຊ່ອງຂໍ້ມູນ

ທ່ານສາມາດນໍາໃຊ້ ALTER ເພື່ອປ່ຽນຄ່າເລີ່ມຕົ້ນຂອງຊ່ອງຂໍ້ມູນ, ລອງຕົວຢ່າງຕໍ່ໄປນີ້:

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)

ທ່ານຍັງສາມາດໃຊ້ຄໍາສັ່ງ ALTER ກັບ DROP clause ເພື່ອເອົາຄ່າເລີ່ມຕົ້ນຂອງຊ່ອງຂໍ້ມູນ, ດັ່ງໃນຕົວຢ່າງຕໍ່ໄປນີ້:

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:

ການແກ້ໄຂປະເພດຕາຕະລາງຂໍ້ມູນສາມາດເຮັດໄດ້ໂດຍໃຊ້ຄໍາສັ່ງ ALTER ແລະ TYPE clause.ລອງຕົວຢ່າງຕໍ່ໄປນີ້, ບ່ອນທີ່ພວກເຮົາປ່ຽນປະເພດຂອງຕາຕະລາງ testalter_tbl ເປັນ MYISAM:

ໝາຍເຫດ: ທ່ານສາມາດໃຊ້ຄຳສັ່ງ 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)

ແກ້ໄຂຊື່ຕາຕະລາງ

ຖ້າທ່ານຕ້ອງການແກ້ໄຂຊື່ຂອງຕາຕະລາງຂໍ້ມູນ, ທ່ານສາມາດໃຊ້ RENAME clause ໃນຄໍາສັ່ງ ALTER TABLE ເພື່ອເຮັດແນວນັ້ນ.

ລອງໃຊ້ຕົວຢ່າງຕໍ່ໄປນີ້ເພື່ອປ່ຽນຊື່ຕາຕະລາງຂໍ້ມູນ testalter_tbl ເປັນ alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ຄໍາສັ່ງ ALTER ຍັງສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງແລະລຶບດັດສະນີໃນຕາຕະລາງຂໍ້ມູນ MySQL, ເຊິ່ງພວກເຮົາຈະແນະນໍາໃນບົດຕໍ່ໄປ.

ປ່ຽນ​ແປງ​ການ​ນໍາ​ໃຊ້​ອື່ນໆ​

ປັບປຸງແກ້ໄຂເຄື່ອງຈັກການເກັບຮັກສາ: ແກ້ໄຂມັນເປັນ myisam

alter table tableName engine=myisam;

ເອົາຂໍ້ຈໍາກັດຂອງກະແຈຕ່າງປະເທດອອກ: keyName ແມ່ນນາມແຝງກະແຈຕ່າງປະເທດ

alter table tableName drop foreign key keyName;

ຕໍາແຫນ່ງທີ່ກ່ຽວຂ້ອງຂອງພາກສະຫນາມທີ່ຖືກດັດແກ້: ທີ່ນີ້ name1 ແມ່ນພາກສະຫນາມທີ່ທ່ານຕ້ອງການແກ້ໄຂ, type1 ແມ່ນປະເພດຕົ້ນສະບັບຂອງພາກສະຫນາມ, ແລະທ່ານສາມາດເລືອກຫນຶ່ງຂອງທໍາອິດແລະຫຼັງ, ເຊິ່ງຄວນຈະເຫັນໄດ້ຊັດເຈນ, ທໍາອິດແມ່ນວາງໄວ້ກ່ອນ, ແລະຫຼັງຈາກແມ່ນ. ວາງໄວ້ຫຼັງຈາກພາກສະຫນາມ name2

alter table tableName modify name1 type1 first|after name2;

ຫວັງວ່າ ບົດຄວາມ "ການເພີ່ມຫຼາຍພາກສະໜາມໃສ່ MySQL ໂດຍໃຊ້ ALTER TABLE? ຄຳອະທິບາຍລະອຽດກ່ຽວກັບຄຳສັ່ງ 'MODIATE COLLECT'" ທີ່ແບ່ງປັນໃນ ບລັອກຂອງ Chen Weiliang ( https://www.chenweiliang.com/ ) ຈະເປັນປະໂຫຍດຕໍ່ທ່ານ.

ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະແບ່ງປັນລິ້ງຂອງບົດຄວາມນີ້: https://www.chenweiliang.com/cwl-495.html

ເພື່ອປົດລັອກເຄັດລັບທີ່ເຊື່ອງໄວ້ເພີ່ມເຕີມ🔑, ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ຊ່ອງ Telegram ຂອງພວກເຮົາ!

Share and like ຖ້າທ່ານມັກມັນ! ການແບ່ງປັນ ແລະຖືກໃຈຂອງເຈົ້າເປັນແຮງຈູງໃຈຢ່າງຕໍ່ເນື່ອງຂອງພວກເຮົາ!

 

评论评论

您的邮箱地址不会被公开。必填项已用*标注

ເລື່ອນໄປທາງເທີງ