Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้างและเติมค่าให้คอลัมน์ใหม่ในตาราง MySQL ที่มีอยู่แล้ว

ใช้ ALTER TABLE ADD COLUMN ... GENERATED ALWAYS AS (expression) สร้าง Generated Column คำนวณอัตโนมัติ

ตัวอย่างการใช้งาน

1. สร้างตารางและข้อมูลเดิม

mysql> CREATE TABLE DemoTable (Value1 INT, Value2 INT);
mysql> INSERT INTO DemoTable VALUES (10, 10), (20, 30);

2. เพิ่มคอลัมน์ Value3 = (Value1 = Value2) แบบ Boolean → 1/0

mysql> ALTER TABLE DemoTable ADD Value3 INT GENERATED ALWAYS AS (Value1 = Value2);

ผลลัพธ์

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| 10     | 10     | 1      |  -- TRUE
| 20     | 30     | 0      |  -- FALSE
+--------+--------+--------+

ประเภท Generated Column

ประเภทคำสั่งเก็บข้อมูลคำนวณเมื่อ
VIRTUALGENERATED ALWAYS AS (expr) VIRTUALไม่เก็บ (Default)อ่านทุกครั้ง
STOREDGENERATED ALWAYS AS (expr) STOREDเก็บจริงINSERT/UPDATE

วิธีเดิม: ADD COLUMN + UPDATE

ALTER TABLE DemoTable ADD Value3 INT;
UPDATE DemoTable SET Value3 = (Value1 = Value2);

ข้อเสีย: ต้อง UPDATE เองทุกครั้งที่ Value1/Value2 เปลี่ยน

ข้อดีของ Generated Column

  • คำนวณอัตโนมัติ ตรงตามข้อมูลเสมอ
  • สามารถสร้าง Index ได้ (STORED)
  • ไม่ต้องกังวลลืม UPDATE