【问题标题】:How to accept only one active session in MySQL table如何在 MySQL 表中只接受一个活动会话
【发布时间】:2022-08-12 04:05:50
【问题描述】:

我有一个名为sessions 的MySQL 表,其中有 id, name, startDate, endDate, status,并且status 列在会话完成后的默认值为\'active\',状态应更改为\'close\'。

如何检查现有会话是否为“活动”并在创建会话时通知是否有任何会话,这样我就不能有多个“活动”会话?

我有这个存储过程来创建会话表:

DELIMITER $$
CREATE procedure createSession(IN  name VARCHAR(100), startDate DATE , endDate DATE) 
BEGIN
INSERT INTO academicYear (  name , startDate , endDate ) VALUES (  name , startDate , endDate );
END $$
DELIMITER ;

*NB:status 列具有默认值:\'active\'

学年记录:

  • 我们会帮助查看一些代码来帮助我们回答问题。
  • 好的,很酷,我会尽快更新问题
  • \"我的问题是如何检查现有会话是否为 \'active\' 并通知是否有任何会话,以便我不能有多个 \'active\' 会话?\"你的意思是每个应用程序用户?
  • 简而言之,表会话是学校的学年,而不是与用户相关的会话
  • 这是一个完整的例子吗?如果是这样,您能否举一个academicYear 中的数据示例(大约3 条记录即可)?

标签: mysql database


【解决方案1】:

要了解academicYear 的状态,您可以执行以下操作:

SELECT
   Name,
   startDate,
   endDate,
   CASE WHEN now() BETWEEN startDate AND endDate 'Active' ELSE 'Closed' END  as status
FROM 
   academicYear;

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2019-08-22
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    相关资源
    最近更新 更多