Triggers 修改值后的SQL触发器插入
我希望在新插入时触发以修改值。情况如下。向表中添加新条目时,如果ObjectTypeID介于684和750之间,请将质量值更新为100。从我到目前为止所读到的内容来看,我相信这应该在以后的insert中完成,但我对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
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;