DB内に単純なtrigger機能を作成しようとしているので、もう一方のテーブルが更新されたときにテーブルの値を変更することができます。ワークベンチで適切にトリガーを作成する方法は?
私はライブラリのデータベースが簡素化されており、問題のテーブルはboakloan
とbookcopy
です。 bookloan
にはbookcopy
への外部キーがあります。ここにはisAvailable
という列があります。この列のデフォルト値は1(真)で、bookloan
のテーブルに新しいエントリがあると、書籍のコピーが借用されており、利用できなくなったので、isAvailable
の値を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'
ご意見ありがとうございます。はい、ここに投稿する前にコード内でこの部分を変更しましたが、それでも機能しません。今質問を編集します。 –