在MySQL中,可以通过两种方法将MySQL字段重置为默认值。一个是默认关键字,另一个是default()
方法。
情况1:使用默认关键字。语法如下:
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) -> );
使用insert命令在表中插入一些记录。查询如下:
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);
使用select语句显示表中的所有记录。查询如下:
mysql> select *from Default_Demo;
以下是输出:
+----+-------+------+---------+ | 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 | +----+-------+------+---------+ 6 rows in set (0.00 sec)
这是将MySQL字段重置为默认值的查询。
情况1:使用默认关键字。查询如下:
mysql> update Default_Demo set Age=Default where Id=6; Rows matched: 1 Changed: 1 Warnings: 0
现在,您可以检查表记录,“年龄”列为NULL,其中“ Id”为6。查询如下:
mysql> select *from Default_Demo;
以下是输出:
+----+-------+------+---------+ | 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 | +----+-------+------+---------+ 6 rows in set (0.00 sec)
查看其中Age列已更新为默认值NULL的Id 6。
情况2:现在您还可以使用default()
方法。在此处,使用默认值(其中Id为6)更新Salary列。查询如下:
mysql> update Default_Demo set Salary=Default(Salary) where Id=6; Rows matched: 1 Changed: 1 Warnings: 0
现在检查表记录中Id为6。
mysql> select *from Default_Demo where Id=6;
以下是输出:
+----+-------+------+--------+ | Id | Name | Age | Salary | +----+-------+------+--------+ | 6 | David | NULL | NULL | +----+-------+------+--------+ 1 row in set (0.00 sec)
查看薪水列,默认值NULL成功更新。