Mysql触发器插入最后一个日期

时间:2014-01-27 10:26:07

标签: mysql date triggers

我必须在Mysql表上每天只进行一次插入。

DELIMITER $$

CREATE TRIGGER trig
BEFORE INSERT ON Table
FOR EACH ROW BEGIN
/** compare the date with the latest inserted **/
  IF () THEN
    // if it's ok => insert
  ELSE
    // nothing
  END IF;
END$$

DELIMITER ;

我想比较最后插入的日期和当前日期,然后启动触发器来完成工作。 感谢

1 个答案:

答案 0 :(得分:0)

你可以通过在日期列上创建UNIQUE约束,然后使用INSERT IGNORE语法,在没有触发器的情况下实现这一点(这是一件好事吗?)。

假设您有一个包含以下架构的表

CREATE TABLE table1
(
  date DATE, 
  value INT
);

让我们创建一个UNIQUE约束

CREATE UNIQUE INDEX idx_date_unique ON table1 (date);

现在您可以使用IGNORE子句

INSERT IGNORE INTO table1 VALUES (CURDATE(), 1);
INSERT IGNORE INTO table1 VALUES (CURDATE(), 2);
INSERT IGNORE INTO table1 VALUES (CURDATE(), 3);

因此,您每天只会在表格中排第一行。

这是 SQLFiddle 演示