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

เปลี่ยน Default Value ของคอลัมน์ใน MySQL ใช้ ALTER TABLE CHANGE


ไวยากรณ์เปลี่ยน Default Value

ใช้ ALTER TABLE ... CHANGE COLUMN ระบุ Default ใหม่:

ALTER TABLE your_table
CHANGE COLUMN column_name column_name data_type NOT NULL DEFAULT 'new_default';

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

สร้างตารางมีคอลัมน์ TIMESTAMP (Default NULL)

CREATE TABLE DefaultDemo (ArrivalTime TIMESTAMP);

โครงสร้างเดิม

DESC DefaultDemo;
+-------------+-----------+------+-----+---------+-------+
| Field       | Type      | Null | Key | Default | Extra |
+-------------+-----------+------+-----+---------+-------+
| ArrivalTime | timestamp | YES  |     | NULL    |       |
+-------------+-----------+------+-----+---------+-------+

เปลี่ยนเป็น NOT NULL DEFAULT CURRENT_TIMESTAMP

ALTER TABLE DefaultDemo
CHANGE COLUMN ArrivalTime ArrivalTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

ทดสอบ Insert ไม่ระบุค่า

INSERT INTO DefaultDemo VALUES ();

ผลลัพธ์: ได้เวลาปัจจุบันอัตโนมัติ

+---------------------+
| ArrivalTime         |
+---------------------+
| 2018-12-07 11:31:00 |
+---------------------+

รูปแบบ Default Value ที่นิยม

ชนิดข้อมูล ตัวอย่าง Default
INT DEFAULT 0
VARCHAR DEFAULT 'N/A'
DATETIME DEFAULT CURRENT_TIMESTAMP (MySQL 5.6.5+)
TIMESTAMP DEFAULT CURRENT_TIMESTAMP
BOOLEAN DEFAULT FALSE
JSON DEFAULT (JSON_OBJECT()) (MySQL 8.0+)

ลบ Default Value (กลับเป็น NULL)

ALTER TABLE your_table
CHANGE COLUMN column_name column_name data_type DEFAULT NULL;

ดู Default Value ปัจจุบัน

SHOW COLUMNS FROM your_table LIKE 'column_name';
-- หรือ
SELECT COLUMN_DEFAULT FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'db' AND TABLE_NAME = 'table' AND COLUMN_NAME = 'col';