1

如何创建由数据库中的更改激活的触发器,该更改会更改不同数据库中表中的值?

一个数据库包含具有登录信息(用户名、密码)的表。当用户登录时,另一个数据库中的表中的值将被更新。

这怎么可能实现?

[编辑]

对不起,是的,两个不同的数据库在同一个数据库服务器上。

[更新]

我有mainDB.users桌子:

username | password | NumberLogins
---------|----------|--------------
         |          |

和一张otherDB.history桌子:

username | points
---------|---------
         |

points用户登录后如何增加相应的值?

USE `mainDB`;

DROP TRIGGER IF EXISTS `updateUserInfo`;

DELIMITER ||

CREATE TRIGGER `updateUserInfo` 
    BEFORE UPDATE ON `users` 
    FOR EACH ROW

    BEGIN
        IF NEW.`NumberLogins`=5 THEN

            UPDATE `otherDB`.`history`
            SET `points` = `points` + 1,
            WHERE 
              `username`=NEW.`username`;

        END IF;

    END ||

我不断收到此错误。

 #1442 - Can't update table 'history' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 
4

1 回答 1

1

我假设两个数据库都在同一台服务器上。

USE name_of_db_trigger_to_be_in;
delimiter ||
create trigger.......

   UPDATE other_db.other_table
   SET other_guys = 'hohoho';


end||
于 2012-11-01T10:26:28.973 回答