別のデータベースのテーブルの値を変更するデータベースの変更によってアクティブ化されるトリガーを作成する方法は?
1 つのデータベースには、ログイン情報 (ユーザー名、パスワード) を持つテーブルが含まれています。ユーザーがログインすると、別のデータベースのテーブルの値が更新されます。
これはどのように達成できますか?
[編集]
はい、2 つの異なるデータベースが同じデータベース サーバー上にあります。
[更新しました]
私は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.