如何创建由数据库中的更改激活的触发器,该更改会更改不同数据库中的表中的值?
一个数据库包含具有登录信息的表(用户名,密码)。当用户登录时,将更新另一个数据库中的表中的值。
如何实现这一目标?
[编辑]
抱歉,是的,两个不同的数据库位于同一个数据库服务器上。
[更新]
我有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.
答案 0 :(得分:1)
我假设两个数据库都在同一台服务器上。
USE name_of_db_trigger_to_be_in;
delimiter ||
create trigger.......
UPDATE other_db.other_table
SET other_guys = 'hohoho';
end||