如何創建觸發器,該觸發器是通過更改數據庫中的更改而激活的,該更改會更改不同數據庫中的表中的值?在數據庫中觸發應更改不同數據庫中表中的值的數據庫?
一個數據庫包含具有登錄信息(用戶名,密碼)的表。當用戶登錄時,另一個數據庫中的表中的值將被更新。
這怎麼可能實現?
[編輯]
對不起,是的,兩個不同的數據庫是相同的數據庫服務器上。
[更新]
我有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.
什麼樣的「其他數據庫」?不同的服務器否則,只需運行查詢並通知您可以指定'database.tablename.columname'來訪問其他表和數據庫。 – Sven