【问题标题】:Calculation of expiry date for new insertion计算新插入的到期日期
【发布时间】:2013-08-10 18:01:50
【问题描述】:
insert into recharge (user_id, package_id, recharge_date, expiry_date)
values ('datta_vcc','mb02','2013-06-06',
           new.recharge_date+((select validity from internet_package where
           internet_package.package_id=new.package_id)*24*60*60));

我想从 internet_package 表中获得的有效性计算到期日期。但是这个插入查询抛出错误说:“字段列表”中的未知列“new.recharge_date”。如何解决?

【问题讨论】:

  • user_id,recharge_date 是否也出现在 internet_package 表中?为什么要硬编码它们的值?
  • 这是在触发器中吗?
  • @Algorithmist,不,internet_package 只包含包的详细信息,没有用户信息。
  • @skv,不是普通的插入查询
  • @Algorithmist,我现在正在测试查询。所有值都将从前端的 from 中获取。

标签: mysql sql database


【解决方案1】:
insert into recharge (user_id, package_id, recharge_date, expiry_date)
select 'datta_vcc','mb02','2013-05-06',date_add('2013-05-06', INTERVAL validity day)
from internet_package
where internet_package.package_id = 'mb02';

目前这似乎可行。硬编码的值将从前端的表单中获取。这个查询可以进一步优化吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多