MySQL เปลี่ยนแปลงเพิ่มเพื่อเพิ่มตำแหน่งฟิลด์หลายตำแหน่ง? คำอธิบายโดยละเอียดของการใช้คำสั่งคอลัมน์แก้ไข

MySQL แก้ไขเพิ่มเพื่อเพิ่มตำแหน่งสนามหลายตำแหน่ง? คำอธิบายโดยละเอียดของการใช้คำสั่งคอลัมน์แก้ไข

MySQL เปลี่ยนแปลงคำสั่ง

เมื่อเราต้องการแก้ไขชื่อตารางข้อมูลหรือแก้ไขเขตข้อมูลตารางข้อมูล เราจำเป็นต้องใช้คำสั่ง 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 เพื่อวางคอลัมน์ i ของตารางที่สร้างด้านบน:

mysql> ALTER TABLE testalter_tbl  DROP i;

คุณไม่สามารถใช้ DROP เพื่อลบเขตข้อมูลได้หากมีเพียงหนึ่งเขตข้อมูลที่เหลืออยู่ในตารางข้อมูล

ส่วนคำสั่ง ADD ใช้ใน 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 จัดหาให้ (setการวางตำแหน่งคอลัมน์แรก) หลังชื่อฟิลด์ (ตั้งค่าหลังฟิลด์)

ลองใช้คำสั่ง 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 ดังนั้นหากคุณต้องการรีเซ็ตตำแหน่งของฟิลด์ตารางข้อมูล คุณต้องใช้ DROP เพื่อลบฟิลด์ก่อน จากนั้นจึงใช้ ADD เพื่อเพิ่มฟิลด์และกำหนดตำแหน่ง


แก้ไขประเภทฟิลด์และชื่อ

หากคุณต้องการแก้ไขประเภทและชื่อฟิลด์ คุณสามารถใช้คำสั่งย่อย MODIFY หรือ CHANGE ในคำสั่ง ALTER

ตัวอย่างเช่น ในการเปลี่ยนประเภทของฟิลด์ c จาก CHAR(1) เป็น CHAR(10) ให้รันคำสั่งต่อไปนี้:

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

ด้วยประโยค CHANGE ไวยากรณ์จะแตกต่างกันมากทันทีหลังจากคีย์เวิร์ด CHANGE คือชื่อของฟิลด์ที่คุณต้องการแก้ไข จากนั้นระบุชื่อฟิลด์ใหม่และประเภทลองตัวอย่างต่อไปนี้:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ผลกระทบของ ALTER TABLE ต่อค่า 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 เพื่อลบค่าเริ่มต้นของฟิลด์ ดังตัวอย่างต่อไปนี้:

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ลองตัวอย่างต่อไปนี้ ซึ่งเราเปลี่ยนประเภทของตาราง 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 ในคำสั่ง 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 เป็นประเภทดั้งเดิมของฟิลด์ ก่อน และ หลัง สามารถเลือกได้ ซึ่งควรจะชัดเจน อันดับแรก จะถูกวางไว้ก่อน และ หลัง จะถูกวางไว้หลังชื่อ2 สนาม

alter table tableName modify name1 type1 first|after name2;

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "MySQL แก้ไขเพิ่มเพื่อเพิ่มตำแหน่งฟิลด์หลายตำแหน่ง? คำอธิบายโดยละเอียดเกี่ยวกับการใช้คำชี้แจงคอลัมน์แก้ไข" มีประโยชน์สำหรับคุณ

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-495.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注