【问题标题】:SQLITE getting trigger to check against table1 and insert into table2SQLITE 获取触发器以检查 table1 并插入 table2
【发布时间】:2013-11-21 21:01:34
【问题描述】:

我有一个预订表,用户将在其中插入记录。
用户不会只选择汽车类型。

插入记录后,我希望一些触发器执行以下操作:-

日志文件中的日期和车辆组合,数据和车辆是唯一的(日期,汽车),因此不能进行两次相同的预订,因此不能重复预订汽车。

所以我的问题是我现在如何获得触发器来选择该类型的下一辆可用汽车?

我只需说 Car.carid != Log.carid 就可以让它选择下一辆车,但这没有将日期用作第二次检查,因此我无法在另一个日期使用该车辆。

简单地在检查之间加上 AND 不起作用的意思 WHERE Car.carid != Log.carid AND Reservation.date != C.datewhen

我们将不胜感激!

【问题讨论】:

  • 在考虑触发器之前,你必须意识到必须使用哪些SQL语句来手动执行操作!
  • 嘿 LS_dev 谢谢,是的,我正在尝试这样做,但我只能基于汽车或基于类型而不是两者。但是是的,方法明智,我完全同意,作为菜鸟我正在尝试!

标签: sqlite


【解决方案1】:

我认为这个查询是你所追求的......

SELECT      MIN(c.carid)
FROM        all_cars c
WHERE       c.type = 'CAR TYPE'
    AND NOT EXISTS
        (SELECT     1
         FROM       reservation r
         WHERE      r.date = 'THE DATE'
            AND r.carid = c.carid)

如果查询返回 NULL 值,则没有可用的汽车。 或者您可以取消 MIN 并使用返回的第一条记录。

【讨论】:

  • 嗨,阿德里安,我刚刚运行了这个,我可以看到你打算用它去哪里。使用 MIN 它返回最小的数字,就好像我有一个 ORDER BY。我需要将此添加到我的查询中,看看它是否按我的需要工作。也就是说,我认为我可能需要确切地了解我需要得到什么。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
相关资源
最近更新 更多