gpt4 book ai didi

SQL:引用 2 个表的触发器

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:13 24 4
gpt4 key购买 nike

这可能是个愚蠢的问题,但它让我紧追不舍。

订单表和产品表,如果订购数量超过库存数量,则...

我大概用谷歌搜索了 50 个关键词,查了 3 本书,找不到这样做的方法。这是我正在尝试做的事情的前提,而不是我已经尝试过的事情。

CREATE TRIGGER tr_check_qty
ON order_details
FOR INSERT,UPDATE
AS
IF (SELECT quantity FROM inserted) > products.quantity_in_stock
BEGIN
PRINT 'Orderded quantity cannot exceed quantity in stock'
ROLLBACK TRANSACTION
END

我在哪里可以加入他们?我尝试了 20 种不同的方法,尝试在前面声明一个变量,但我找不到这样做的方法。

干杯。

最佳答案

你可以这样做:

CREATE TRIGGER tr_check_qty ON order_details
FOR INSERT,UPDATE
AS
BEGIN
-- rollback transaction if any product type in order exceeds stock amount
IF EXISTS (
SELECT
*
FROM
inserted
INNER JOIN products ON inserted.product_id = products.product_id
GROUP BY
products.product_id
HAVING
SUM(inserted.quantity) > MAX(products.quantity_in_stock)
)
BEGIN
PRINT 'Ordered quantity cannot exceed quantity in stock'
ROLLBACK TRANSACTION
END
END

它适用于单行插入和多行插入。

关于SQL:引用 2 个表的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com