【发布时间】:2017-04-26 02:47:46
【问题描述】:
我正在尝试在我的数据库中创建一个简单的触发器功能,以便在更新另一个表时更改其中一个表中的值。
我有一个过于简单的图书馆数据库,有问题的表是boakloan 和bookcopy。
在bookloan 中,我有一个指向bookcopy 的外键,其中我有一个isAvailable 列。此列的默认值为 1(true),并且在我的bookloan 表中有一个新条目将意味着一本书的副本已被借阅,并且不再可用,所以我想更改 @987654327 的值@ 为 0(false) 为这条记录。
我尝试通过几种方式为此编写触发器,但没有任何效果。
这是我最后的代码:
USE `libdb`;
DELIMITER $$
DROP TRIGGER IF EXISTS libdb.bookcopy_update$$
USE `libdb`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `libdb`.`bookcopy_update`
BEFORE INSERT
ON `bookloan` FOR EACH ROW
BEGIN
UPDATE bookcopy
SET bookcopy.isAvailable = 0
WHERE bookcopy.isAvailable = 1
AND bookcopy.idBookCopy = bookloan.BookCopy_idBookCopyFK;
END$$
DELIMITER ;
有人可以帮助完成这项工作吗?
使用当前版本,我收到以下错误:ERROR 1054: 1054: Unknown column 'bookloan.BookCopy_idBookCopyFK' in 'where clause'
【问题讨论】:
-
感谢您的评论。是的,我在此处发布之前更改了代码中的这一部分,但它仍然无法正常工作。我现在将编辑问题。
标签: mysql sql database mysql-workbench