1

別のデータベースのテーブルの値を変更するデータベースの変更によってアクティブ化されるトリガーを作成する方法は?

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. 
4

1 に答える 1

1

両方の DB が同じサーバー上にあると仮定します。

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 に答える