2012-07-23 98 views
6

我正在使用MySQL社区服务器5.1。有没有办法只用一个查询就可以将所有行重新设置为默认列值?将行恢复为默认列值mysql

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

这样的事情,例如:

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

谢谢!

+0

为什么你会想要做到这一点是超出我的。只有默认数据的记录有什么意义? – eggyal 2012-07-23 14:40:15

+1

这是为我担心;-) – 2012-07-23 14:41:25

回答

16

有一个在INSERT和UPDATE查询,默认提供的关键字,你可以代替任何真正的列值的使用:

update my_table set my_column = DEFAULT where id > 300; 

如记录in the MySQL Manual

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

+0

应该已经知道,即使我已经去过那个文档页面数十万次: - /谢谢! – 2012-07-23 14:50:30

6

你应该尝试:

UPDATE table_name SET col = DEFAULT(col) WHERE id > 300;