【问题标题】:How to Auto Update one Field in Database如何自动更新数据库中的一个字段
【发布时间】:2015-01-12 02:37:07
【问题描述】:

我有表 X 和字段 EndTime(DateTime) 和 Status(int) 状态有 2 个条件。 1 表示已预订,0 表示可用

我想在 EndTime(DateTime) 等于当前时间时自动将 Status 值从 1 更新为 0。

我是怎么做到的?

注意:这就像登记在大楼里的人,以及他们离开的时间和时间。当时间结束时,Status(int) 会自动从 1 变为 0。

【问题讨论】:

  • 一些数据库,例如SQL Server,让您安排作业定期运行。当EndTime 过去时,您可以每五分钟运行一次存储过程来更新状态值。请注意,它可能比看起来更复杂。如果您使用本地时间而不是世界时,那么当时间向前或向后移动一小时时,您可能会每年两次遇到奇怪的问题。

标签: c# sql sql-server sql-server-2008 auto-update


【解决方案1】:

你没有提到你问的是哪个数据库。让我们假设 MySQL 和 Postgres。

简短的回答是,这些数据库都没有提供基于某些标准更新行的本地方法。您可以使用触发器来执行将在更新行时运行的函数,但不能保证它将针对条件 EndTime == CurrentTime 运行。

我认为您需要做的是实现一个按计划运行的外部进程,例如cron,并找到所有即将过期的行并自己更新它们。

【讨论】:

  • 您介意给我一个代码示例吗?我在数据库中很新。我使用 sql-server 2008 和 c# .Net 构建应用程序。
猜你喜欢
  • 2010-11-30
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
相关资源
最近更新 更多