【问题标题】:Mysql prevent insert after some dateMysql阻止在某个日期后插入
【发布时间】:2012-12-07 11:43:39
【问题描述】:

是否可以在某个日期和时间之后阻止在 mysql 表中的插入?

例如我有 2 个表:

TABLE exams 
(
...
examID int primary key auto_increment,
examDate DATE,
examTime TIME, 
...
)


TABLE inscripts
(
...
examID int not null references exams(examID),
insDate DATE,
insTime TIME,
...
)

我想防止在考试进行时插入新的铭文。

有一些功能可以防止这种情况发生或轻松检查当前日期和当前时间是否等于或大于匹配表中的日期和时间?

【问题讨论】:

    标签: mysql function date time insert


    【解决方案1】:

    您可以create a trigger 在继续之前验证插入。伪代码,但类似于:

    DELIMITER |
    CREATE TRIGGER `Stop_Insert_During_Exam`
    BEFORE UPDATE ON `inscripts`
    FOR EACH ROW
    BEGIN
      DECLARE msg VARCHAR(255);
      -- Check
      -- Test if an exam is going on. If so:
      SET msg = "You cannot add an inscription while an exam is going on.';
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
      -- /Check
    END;
    |
    

    【讨论】:

      【解决方案2】:

      看看你的桌子,当你尝试插入题词时,你已经知道考试了。因此,您可以在插入题词之前抓住考试并检查它是否正在进行。如果是就不要插入,如果不是就插入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-29
        • 2016-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-23
        相关资源
        最近更新 更多