Triggers 修改值后的SQL触发器插入

Triggers 修改值后的SQL触发器插入,triggers,sql-insert,Triggers,Sql Insert,我希望在新插入时触发以修改值。情况如下。向表中添加新条目时,如果ObjectTypeID介于684和750之间,请将质量值更新为100。从我到目前为止所读到的内容来看,我相信这应该在以后的insert中完成,但我对SQL和学习仍然是新手。到目前为止,我还没能让它工作 以下是我目前的尝试: CREATE TRIGGER `items_after_insert` AFTER INSERT ON `items` FOR EACH ROW BEGIN SET items.Quality = '10

我希望在新插入时触发以修改值。情况如下。向表中添加新条目时,如果ObjectTypeID介于684和750之间,请将质量值更新为100。从我到目前为止所读到的内容来看,我相信这应该在以后的insert中完成,但我对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
为每行的'items'在插入'items'之后创建触发器'items'
开始
设置项目。质量='100'
从项目
其中items.ObjectTypeID>'653'和items.ObjectTypeID<'751'
结束
使用以下建议解决:

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
在插入之前为每行的“items”创建触发器“items”

如果NEW.ObjectTypeID>'653'和NEW.ObjectTypeID,则可以在触发器上使用关键字NEW和OLD来引用插入的寄存器和更新的寄存器

请看以下示例:

在帐户更新之前创建触发器upd\U检查
每行
开始
如果NEW.amount<0,则
设置NEW.amount=0;
ELSEIF NEW.amount>100则
设置新的。金额=100;
如果结束;
结束;

现在我认为解决您的问题很容易。

在插入后创建触发器
items\U在插入后
items
为每行开始设置项。质量='100'来自items.ObjectTypeID>'653'和items.ObjectTypeID<'751'结束的项
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;