gpt4 book ai didi

mysql - sql触发两个表不为空

转载 作者:行者123 更新时间:2023-11-29 17:46:01 25 4
gpt4 key购买 nike

CREATE TRIGGER bookAvailDelete after delete on Auction
for each row
Begin
if (Select count(OLD.isbn) from Auction a > 0)
update Book b
set available =false
where OLD.isbn = isbn
;

我有两个表,Auction 和 Book。拍卖具有引用图书 isbn 主键的 isbn key 。许多拍卖可以指向同一本书,因此我希望此触发器检查每个拍卖删除,看看它是否是该书 isbn 的最后一次拍卖。如果是,则它将 Book 中的“available”键设置为 false。

最佳答案

通常,除非存在性能原因,否则您只需使用以下查询即时计算(而不是存储它):

SELECT b.*
, EXISTS(SELECT * FROM Auction a WHERE a.isbn = b.isbn) AS available
FROM Book b

或(我喜欢的格式):

SELECT b.*, (a.isbn IS NOT NULL) AS available
FROM Book b
LEFT JOIN (SELECT DISTINCT isbn FROM Auction) AS a ON b.isbn = a.isbn
;

关于mysql - sql触发两个表不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49821550/

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