Mysql触发器插入最后日期

标签 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 ;

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

最佳答案

您可以通过创建 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 演示

关于Mysql触发器插入最后日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378368/

相关文章:

mysql - 使用触发器停止插入或更新

mysql - 以月为单位的定义时间段内的总和

mysql - 如何创建触发器 MySQL 5.6

用于检查日期是否接近今天的 SQL 查询

c# - 将字符串转换为 mm/dd/yyyy 格式

java - 如何将日期格式从 yyyy-MM-dd 更改为 dd-MMM-yyyy

JQuery 自动完成列表消失

插入、更新时的 MySql 触发器

html - 如何将数据从本地 phpmyadmin mysql 数据库复制到 godaddy cpanel mysql 数据库?

mysql - 在组语句中依赖 order by 是否安全?