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

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

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 ສະຫນອງໃຫ້ໂດຍ MySQL (ຊຸດການຈັດຕໍາ ແໜ່ງຖັນທໍາອິດ), ຊື່ຊ່ອງ AFTER (ຕັ້ງຫຼັງຈາກຊ່ອງຂໍ້ມູນ).

ລອງໃຊ້ຄຳສັ່ງ 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;

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "MySQL ປ່ຽນແປງເພີ່ມເພື່ອເພີ່ມຕໍາແຫນ່ງພາກສະຫນາມຫຼາຍບໍ? ຄໍາອະທິບາຍລາຍລະອຽດຂອງການນໍາໃຊ້ຄໍາຖະແຫຼງການດັດແກ້ຖັນ" ເປັນປະໂຫຍດສໍາລັບທ່ານ.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-495.html

ຍິນດີຕ້ອນຮັບສູ່ຊ່ອງ Telegram ຂອງບລັອກຂອງ Chen Weiliang ເພື່ອຮັບອັບເດດຫຼ້າສຸດ!

🔔 ເປັນຜູ້ທຳອິດທີ່ໄດ້ຮັບ "ຄູ່ມືການໃຊ້ເຄື່ອງມືການຕະຫຼາດເນື້ອຫາ ChatGPT AI" ທີ່ມີຄຸນຄ່າໃນລາຍການທາງເທິງ! 🌟
📚ຄູ່ມືນີ້ມີຄຸນຄ່າອັນມະຫາສານ, 🌟ນີ້ເປັນໂອກາດທີ່ຫາຍາກ, ຢ່າພາດມັນ! ⏰⌛💨
Share and like ຖ້າມັກ!
ການ​ແບ່ງ​ປັນ​ແລະ​ການ​ຖືກ​ໃຈ​ຂອງ​ທ່ານ​ແມ່ນ​ການ​ຊຸກ​ຍູ້​ຢ່າງ​ຕໍ່​ເນື່ອງ​ຂອງ​ພວກ​ເຮົາ​!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປເທິງສຸດ