0

mysql5 でトリガーを実装している間、coldfusion アプリケーションにある任意のセッション値 (userName、createdBy など) を渡すことができます。

CREATE TRIGGER Users_After_Insert
ユーザーの挿入後
行ごとに
INSERT INTO auditlog (RequisitionID,ApplicantID,ColumnName,OldID,NewID,Description,CreatedBy,CreatedDate)
値
(0,0,'',0,0,CONCAT('UserID ',new.UserID,' の新しいユーザーが作成されました。'),
 session.userName, curdate()
);

上記のクエリでは、「CreatedBy」列が「user」テーブルにないため、「session.userName」値を auditLog テーブルの「CreatedBy」列に提供する必要があります。そのため、coldfusion セッションから提供する必要があります。

誰かがこの問題を解決するのを手伝ってくれるなら、それは大歓迎です。

ありがとう
ユガル

4

1 に答える 1

0

ユーザー定義変数を作成し、これをトリガーで使用します。

CREATE TRIGGER Users_After_Insert
AFTER insert ON users
FOR EACH ROW
INSERT INTO auditlog (RequisitionID,ApplicantID,ColumnName,OldID,NewID,Description,CreatedBy,CreatedDate)
values
(0,0,'',0,0,CONCAT('New user with UserID ',new.UserID,' is created.'),
 @userName, curdate()
);

INSERT を実行する前に、まずユーザー名を設定する必要があります。

SET @userName = 'Shooter';
INSERT INTO ...;

しかし、これにストアド プロシージャを使用しないのはなぜでしょうか。トリガーを使用すると、問題が発生する可能性があり、変数の設定を忘れる可能性があります。

于 2011-02-17T11:29:27.817 に答える