【发布时间】:2020-09-05 06:34:39
【问题描述】:
我有两张桌子 -
part(partID, brand, price, size)
consists_of(customerID, partID, quantity, price, shipdate)
|
FK part.ID from part
表part 永远不会更改/更新,但consists_of 会。
- 如何在
consists_of上添加[插入前?] 触发器,检查每个条目的consists_of.price是否小于或等于特定consists_of.partID的consists_of.quantity * part.price,如果不是则引发中止是吗?
或者,
- 如何在
INSERT INTO consists_of(price) VALUES (...)的consists_of上添加[插入后?] 触发器,其中consists_of.price的值等于consists_of.quantity * part.price的consists_of.partID?
【问题讨论】:
-
你试过函数和触发器吗? stackoverflow.com/a/24607012/12656244还是你的事情比较复杂?
-
@shoek 1. 那篇文章很相似,但没有多大帮助。 SQLite 不支持我认为这里需要的变量。 2. stackoverflow.com/questions/15618271/… 谈到了与我的问题非常相似的内容,但同样,这里没有变量支持。
-
稍后我会给你一个不带变量的答案... AFAIK,在 SQLite 中没有直接使用变量的方法。临时表是一种替代方法,但在这里不适用。我们可以在用户定义的函数中使用变量,但在 SQLite 中没有
CREATE FUNCTION:我们需要调用 C API 或 PHP/Python/... 包装器来创建函数。 stackoverflow.com/a/14574227/12656244stackoverflow.com/a/24272361/12656244stackoverflow.com/a/2108921/12656244
标签: sql sqlite triggers database-trigger