0
我是一名正在學習MySQL的學生,目前在使用觸發器檢查插入時遇到問題。MySQL使用前觸發器更新同一個表
我有以下表類
CREATE TABLE classes
(Class CHAR(15) PRIMARY KEY,
cType CHAR(2) NOT NULL,
Country VARCHAR(12) NOT NULL,
numGuns INT(2) NOT NULL,
Bore INT(2) NOT NULL,
Displacement INT(6) NOT NULL);
的問題問我寫這個數據庫上執行下面基於屬性的檢查:
- 槍支的數量必須是8之間12.
我的觸發器當前看起來是這樣的
delimiter $$
CREATE TRIGGER chkGun
BEFORE INSERT ON classes
FOR EACH ROW
BEGIN
IF NEW.numGuns >= 8 AND NEW.numGuns <= 12 THEN
UPDATE classes
SET numGuns = NEW.numGuns;
ELSE
SET NEW.numGuns = NULL;
END IF;
END$$
DELIMITER ;
我不斷收到錯誤消息
Error Code: 1442. Can't update table 'classes' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
我從上面的錯誤消息知道我不能更新觸發當前正在使用同一個表。
是否有更新同一個表中的屬性?