gpt4 book ai didi

mysql - 创建一个对另一个表执行更新的触发器

转载 作者:搜寻专家 更新时间:2023-10-30 23:36:49 25 4
gpt4 key购买 nike

我有两个表 - 一个名为 bookloan,另一个名为 bookcopy。在 bookloan 表中,我有一个名为 dateReturneddatetime 字段,默认情况下为 null 并且仅在书被归还。在另一个表 (bookcopy) 中,我有一个字段可用,当一本书被拿走时,该字段的值更改为 0。现在我想在还书时将它改回 1(当我的 datetime 字段不再是 null 并且已更新时)。

我的问题是我为此目的编写的代码(在下面发布)由于某种原因无法正常工作。

P.S 我没有收到任何错误。

USE `libdb`;

DELIMITER $$

DROP TRIGGER IF EXISTS libdb.bookloan_BEFORE_UPDATE$$
USE `libdb`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `libdb`.`bookloan_BEFORE_UPDATE`
BEFORE UPDATE ON `bookloan`
FOR EACH ROW



BEGIN

IF NEW.dateReturned <=> OLD.dateReturned THEN
UPDATE bookcopy
SET isAvailable = 1
WHERE bookcopy.idBookCopy = NEW.BookCopy_idBookCopyFK;
END IF;



END$$
DELIMITER ;

最佳答案

<=> operator是一个 null 安全的 equals 运算符,尽管根据描述您需要“不等于”运算符。在这里,具体来说,如果您只想检查它是否从 null 变为非 null 值(反之亦然),您可以使用逻辑 xor operator :

IF (NEW.dateReturned IS NULL) XOR (OLD.dateReturned IS NULL) THEN

关于mysql - 创建一个对另一个表执行更新的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41087940/

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