2015-02-05 67 views
1

我正在寻找新的插入修改值的触发器。情景如下。当添加了表格的新条目并且ObjectTypeID介于684和750之间时,将质量值更新为100.从我目前阅读的内容来看,我相信这应该在插入后完成,但我仍然是新的到SQL和学习。到目前为止,我一直无法做到这一点。修改后的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 
+0

CREATE TRIGGER'items_after_insert' INSERT ON'items' FOR EACH ROW之后开始 SET items.Quality = '100' FROM项 WHERE items.ObjectTypeID> '653' AND items.ObjectTypeID < '751' END – 2015-02-05 19:47:37

回答

1

您可以使用关键字NEW和OLD在触发器指插入寄存器和更新寄存器。

看看下面这个例子从MySQL documentation

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; 

现在,我想你会很容易ü解决您的问题。

+0

谢谢,使用该参考来解决问题。 – 2015-02-05 20:42:48