【发布时间】:2020-07-26 13:20:08
【问题描述】:
我正在尝试在 phpmyadmin 中创建触发器,并且我有 2 个表,即 Items 和 Inventory。这是一个图书馆数据库。当我插入一个新项目时,如果项目 isbn 已经存在于库存中,我想添加到库存中该项目的 totalCopies 中。如果没有,我希望它在库存中插入一个带有新项目 isbn 的新行。这是我第一次使用触发器,我遇到了语法错误。这就是我现在拥有的。
BEGIN
IF ((SELECT COUNT(*) FROM inventory WHERE inventory.isbn = NEW.isbn) > 0) THEN
(
UPDATE inventory
SET inventory.totalCopies = inventory.totalCopies + 1
WHERE inventory.isbn = NEW.isbn
SET inventory.totalAvailable = inventory.totalAvailable + 1
WHERE inventory.isbn = NEW.isbn
)
ELSE
INSERT INTO inventory VALUES( , NEW.isbn, 1, 1, 0)
END
库存列是:inventoryID (PrimaryKey)(autoincrement)、isbn、totalCopies、totalAvailable、totalCheckedOut。
【问题讨论】:
标签: mysql database-trigger mysql-error-1064