ລາຍການຫົວເລື່ອງ
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 ເພື່ອຮັບອັບເດດຫຼ້າສຸດ!
📚ຄູ່ມືນີ້ມີຄຸນຄ່າອັນມະຫາສານ, 🌟ນີ້ເປັນໂອກາດທີ່ຫາຍາກ, ຢ່າພາດມັນ! ⏰⌛💨
Share and like ຖ້າມັກ!
ການແບ່ງປັນແລະການຖືກໃຈຂອງທ່ານແມ່ນການຊຸກຍູ້ຢ່າງຕໍ່ເນື່ອງຂອງພວກເຮົາ!