将行恢复为默认列值mysql

Posted

技术标签:

【中文标题】将行恢复为默认列值mysql【英文标题】:revert rows to default column value mysql 【发布时间】:2012-07-23 14:37:15 【问题描述】:

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

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

例如这样的:

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

谢谢!

【问题讨论】:

为什么你会想要这样做,这超出了我的理解。只有默认数据的记录有什么意义? 这是让我担心的 ;-) 【参考方案1】:

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

update my_table set my_column = DEFAULT where id > 300;

据记录 in the MySQL Manual

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

【讨论】:

应该知道,即使我去过那个文档页面无数次:-/谢谢!【参考方案2】:

你应该试试:

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

【讨论】:

以上是关于将行恢复为默认列值mysql的主要内容,如果未能解决你的问题,请参考以下文章

如何通过适当的引用从 MySQL 5.7 information_schema.columns 获取默认列值?

mysql怎么在创建表时设置默认时间为系统时间

如何更改sql server中的默认列值

Postgres 根据列值将行转置为列

默认列值在休眠中不起作用

为接收到的可变参数创建表和默认列值