9

我正在使用 MySQL 社区服务器 5.1。有没有办法通过一个查询将所有行设置回它们的默认列值?

我刚刚添加了很多行。我为大多数指定的列设置了默认值,但由于某种原因,所有列的值都设置为 = 0。我想知道是否有一个查询可以将所有列值设置为其默认值,我也需要一个where子句的能力。

例如这样的事情:

update table set values = values(default) where id > 300;

谢谢!

4

2 回答 2

23

在 INSERT 和 UPDATE 查询中有一个 DEFAULT 关键字可用,您可以使用它来代替任何实际的列值:

update my_table set my_column = DEFAULT where id > 300;

MySQL 手册中所述

请注意,还有一个DEFAULT() 函数,如上一个答案中所述;您可以使用它选择任何列的默认值以供使用。

于 2012-07-23T14:47:55.270 回答
6

你应该试试:

UPDATE table_name SET col = DEFAULT(col) WHERE id > 300;
于 2012-07-23T14:39:01.600 回答