เมื่อต้องการเปลี่ยนค่า Default ของคอลัมน์ TINYINT (มักใช้เป็น Boolean Flag) ให้ใช้ ALTER TABLE ... CHANGE หรือ MODIFY พร้อมระบุ DEFAULT 1
สร้างตารางมีคอลัมน์ TINYINT
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(20),
UserAge int,
isMarried tinyint(1)
);
ตรวจสอบ Default เดิม (NULL)
mysql> desc DemoTable;
+-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | | UserAge | int(11) | YES | | NULL | | | isMarried | tinyint(1) | YES | | NULL | | +-----------+-------------+------+-----+---------+----------------+
เปลี่ยน Default เป็น 1 และ NOT NULL
mysql> alter table DemoTable change isMarried isMarried TINYINT(1) DEFAULT 1 NOT NULL;
ตรวจสอบหลังเปลี่ยน
mysql> desc DemoTable;
+-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | | UserAge | int(11) | YES | | NULL | | | isMarried | tinyint(1) | NO | | 1 | | +-----------+-------------+------+-----+---------+----------------+
CHANGE vs MODIFY
| คำสั่ง | Syntax | ใช้เมื่อ |
|---|---|---|
| CHANGE | CHANGE old_name new_name type ... | ต้องการเปลี่ยนชื่อคอลัมน์พร้อมกับ Type |
| MODIFY | MODIFY column_name type ... | เปลี่ยน Type/Constraint เฉยๆ (ไม่เปลี่ยนชื่อ) |