我正在寻找在新插入上触发修改值的触发器。情况如下。当向表中添加新条目时,并且如果ObjectTypeID在684和750之间,请将质量值更新为100。到目前为止,我认为应该在插入之后执行此操作,但是我还是新手。 SQL和学习。到目前为止,我无法使它正常工作。
这是我目前的尝试:
CREATE TRIGGER `items_after_insert` AFTER INSERT ON `items` FOR EACH ROW
BEGIN
SET items.Quality = '100'
FROM items
WHERE items.ObjectTypeID > '653' AND items.ObjectTypeID < '751'
END
使用以下建议解决:
CREATE TRIGGER `items_before_insert` BEFORE INSERT ON `items` FOR EACH ROW BEGIN
IF NEW.ObjectTypeID > '653' AND NEW.ObjectTypeID <'751' THEN
SET NEW.Quality = '100';
END IF;
END
您可以在触发器上使用关键字NEW和OLD来引用插入的寄存器和更新的寄存器。
从MySQL文档中查看以下示例:
CREATE TRIGGER upd_check BEFORE UPDATE ON account
FOR EACH ROW
BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END;
现在,我认为您很容易解决您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句