ใน MySQL มี 2 วิธีในการรีเซ็ตค่าฟิลด์ให้เป็นค่าเริ่มต้น: ใช้คีย์เวิร์ด DEFAULT หรือฟังก์ชัน DEFAULT()
วิธีที่ 1: ใช้คีย์เวิร์ด DEFAULT
UPDATE yourTableName SET yourColumnName = DEFAULT WHERE yourCondition;
วิธีที่ 2: ใช้ฟังก์ชัน DEFAULT()
UPDATE yourTableName SET yourColumnName = DEFAULT(yourColumnName) WHERE yourCondition;
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง:
mysql> create table Default_Demo (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(20),
-> Age int,
-> Salary float,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.73 sec)
เพิ่มข้อมูลทดสอบ:
mysql> insert into Default_Demo(Name,Age,Salary) values('John',23,405.56);
mysql> insert into Default_Demo(Name,Age,Salary) values('Carol',25,1000.98);
mysql> insert into Default_Demo(Name,Age,Salary) values('Larry',21,987.24);
mysql> insert into Default_Demo(Name,Age,Salary) values('Sam',24,986.10);
mysql> insert into Default_Demo(Name,Age,Salary) values('Mike',22,10000.50);
mysql> insert into Default_Demo(Name,Age,Salary) values('David',26,100.45);
ข้อมูลเดิม:
+----+-------+------+---------+ | Id | Name | Age | Salary | +----+-------+------+---------+ | 1 | John | 23 | 405.56 | | 2 | Carol | 25 | 1000.98 | | 3 | Larry | 21 | 987.24 | | 4 | Sam | 24 | 986.1 | | 5 | Mike | 22 | 10000.5 | | 6 | David | 26 | 100.45 | +----+-------+------+---------+
กรณีที่ 1: รีเซ็ต Age ด้วย DEFAULT
mysql> update Default_Demo set Age=DEFAULT where Id=6; Query OK, 1 row affected (0.10 sec)
ผลลัพธ์ Age กลายเป็น NULL (ค่าเริ่มต้น):
+----+-------+------+---------+ | Id | Name | Age | Salary | +----+-------+------+---------+ | 1 | John | 23 | 405.56 | | 2 | Carol | 25 | 1000.98 | | 3 | Larry | 21 | 987.24 | | 4 | Sam | 24 | 986.1 | | 5 | Mike | 22 | 10000.5 | | 6 | David | NULL | 100.45 | +----+-------+------+---------+
กรณีที่ 2: รีเซ็ต Salary ด้วย DEFAULT()
mysql> update Default_Demo set Salary=DEFAULT(Salary) where Id=6; Query OK, 1 row affected (0.21 sec)
ผลลัพธ์ Salary กลายเป็น NULL:
+----+-------+------+--------+ | Id | Name | Age | Salary | +----+-------+------+--------+ | 6 | David | NULL | NULL | +----+-------+------+--------+