请问MySQL里面如何自动更新一张表里的一个属性的值?

bairaulinter 2006-12-23 03:03:54
比如现在有一张表:一下是它的属性

开始时间 Datetime
有效期 int
是否有效 tinyint

数据库是否提供从开始时间开始到有效日期结束,自动将是否有效设置为无效?

谢谢!
...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒得去死 2006-12-25
  • 打赏
  • 举报
回复
alter table 表名 change 字段 字段。。。
mschen 2006-12-23
  • 打赏
  • 举报
回复
/* 在SQL SERVER或者Oracle中有计算列的概念,所以可以实现你的需求,如下 */

create table #t(F_BeginDate datetime,
F_LastDay int,
F_Flag as case when getdate() between F_BeginDate and dateadd(d,F_LastDay,F_BeginDate) then 0 else 1 end
)

insert #t(F_BeginDate,F_LastDay) select '2006-12-01',20
Go
insert #t(F_BeginDate,F_LastDay) select '2006-12-01',30
Go

/* 但是mysql中没有计算列,所以你只能通过视图来实现了 */

alter view v_test
as
select F_BeginDate,
F_LastDay,
IF(sysdate() between F_BeginDate and F_BeginDate+interval F_LastDay Day,0,1) as F_Flag
from t;

select * from v_test;

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧