ລາຍການຫົວເລື່ອງ
ວິທີການເພີ່ມຫຼາຍ 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
