如何创建MySQL触发器?

如何创建MySQL触发器?,mysql,triggers,Mysql,Triggers,有人能帮我拿一下MySQL触发器吗 假设我有两张桌子 Table_Current No (INT TYPE) Name (VARCHAR TYPE) Value (DECIMAL TYPE) Table_Record No (INT TYPE) Name (VARCHAR TYPE) Value (DECIMAL TYPE) 所以我想实现的是,我对Table.Current执行replace语句,如果字段'value'的值小于Table.Record中的值,我想更新Table.Record的

有人能帮我拿一下MySQL触发器吗

假设我有两张桌子

Table_Current
No (INT TYPE)
Name (VARCHAR TYPE)
Value (DECIMAL TYPE)

Table_Record
No (INT TYPE)
Name (VARCHAR TYPE)
Value (DECIMAL TYPE)
所以我想实现的是,我对Table.Current执行replace语句,如果字段'value'的值小于Table.Record中的值,我想更新Table.Record的值

这是我的触发器

DELIMITER $$

CREATE TRIGGER Mytrigger
AFTER INSERT ON Table_Current

FOR EACH ROW
BEGIN

DECLARE CB DECIMAL (6,3);
DECLARE OB DECIMAL (6,3);

OB = SELECT Value FROM Table_Record WHERE Name=NEW.Name;
CB = NEW.Value;
IF CB<OB THEN
UPDATE Table_Record SET Value = NEW.Value WHERE Name = NEW.Name;
END IF;

END $$
DELIMITER;
分隔符$$
创建触发器Mytrigger
在当前表格上插入后
每行
开始
声明CB十进制数(6,3);
声明OB十进制(6,3);
OB=从表_记录中选择值,其中Name=NEW.Name;
CB=新值;

如果CB你可以大量简化这个过程。您试图做的是有效地执行此查询

    UPDATE Table_Record

    SET `Value` = NEW.`Value` 
    WHERE `Name` = NEW.`Name`
    AND `Value` < NEW.`Value`;

此版本的mysql不支持多触发器。我当前使用的是xampp,mysql的版本是5.0。51如果您在
表\u Current
上已经设置了触发器,您可能需要放弃以前的尝试。将在上面的查询中添加一行。谢谢simon,我没有意识到其中一个尝试实际上是正确的。。并且已存储触发器:)顺便说一句,我可以在“替换后”创建触发器吗?@user1149126,您可以在插入/更新/删除之前/之后创建6种触发器。所以是的,但更新后称为
-- First of all, drop any other trigger with the same name
DROP TRIGGER IF EXISTS `Mytrigger`;

-- Create the new trigger
DELIMITER $$

CREATE TRIGGER `Mytrigger`
AFTER INSERT ON Table_Current

FOR EACH ROW
BEGIN

    UPDATE Table_Record

    SET `Value` = NEW.`Value` 
    WHERE `Name` = NEW.`Name`
    AND `Value` < NEW.`Value`;

END $$
DELIMITER;