触发SQL创建(防止日期范围内的日期输入数据库)

时间:2016-04-27 18:24:30

标签: mysql sql

我如何创建一个不允许我在时间段之间引入某些日期的触发器?感谢

1 个答案:

答案 0 :(得分:3)

如果你想在一个时间段之间的某个日期之间抛出错误,你可以做这样的事情(例如)。

create table myTable(id int,datefield datetime);

create trigger date_check before insert on myTable
for each row
begin
  IF new.datefield BETWEEN '2015-01-01' AND '2015-12-31' THEN
    SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = "Date Not Allowed";
  END IF;
end/

http://sqlfiddle.com/#!9/1a1505/1

当用户尝试在2015年内将日期插入数据库时​​,此触发器将引发错误。

您也可以为before update创建另一个触发器,因此如果用户尝试将其更新为您的时间段内的日期,我也会抛出错误。