【问题标题】:MySQL Stored Procedure that select, check dates and insert选择、检查日期和插入的 MySQL 存储过程
【发布时间】:2017-12-22 13:07:28
【问题描述】:

我正在尝试在 MySQL 中创建一个存储过程。我从来没有使用过,所以我什至不知道它是否可以满足我的需求。

我有两张桌子:

  1. 第一个包含已完成的作业(id_operator、日期、 payment_days, payment_status..)
  2. 第二个包含发送到 运算符(id、文本、id_operator..)

我需要从第一个表中选择所有在 payment_status 字段中为 0 的记录,检查 date + payment_days 是否超过当前日期,并在另一个表中插入带有操作员 id 的通知。

希望你能帮助我,谢谢。

【问题讨论】:

  • 只有发布表架构才能更容易理解。
  • 那只需要一个INSERT ... SELECT 语句。您确定要使用过程吗?
  • 我需要每 24 小时执行一次,表架构很大我认为你不需要它
  • 我不相信您需要存储本质上派生的数据,但如果您这样做了,那么 Stav Ros 的方法似乎是合理的。

标签: php mysql stored-procedures


【解决方案1】:

你可以这样做:

INSERT INTO notifications(text, id_operator)
SELECT 'notification text', id_operator
FROM jobs
WHERE payment_status = 0
  AND CURRENT_DATE <= DATE(DATE_ADD(`date`, INTERVAL payment_days DAY));

使用INSERT INTO ... SELECT ...,您可以选择结果并将它们插入到另一个表中。

【讨论】:

  • 如果你交换公式,那么 MySQL 可以使用索引。
猜你喜欢
  • 1970-01-01
  • 2012-11-02
  • 2011-09-21
  • 1970-01-01
  • 2015-02-10
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
相关资源
最近更新 更多