Как мы предоставляем значение сеанса Coldfusion для триггеров в MySQL 15? - PullRequest
0 голосов
/ 17 февраля 2011

при реализации триггеров в mysql5 я могу передать любое значение сеанса, которое есть в моем приложении coldfusion (например, userName, creationBy и т. Д.).

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.'),
 session.userName, curdate()
);

в запросе выше, я должен предоставить "session.userName"значение для столбца «CreatedBy» таблицы audLog, поскольку столбец «CreatedBy» отсутствует в таблице «user», поэтому я должен предоставить его из сеанса coldfusion.

, если кто-то может помочь решить эту проблему, он будетс благодарностью.

СпасибоYugal

1 Ответ

0 голосов
/ 17 февраля 2011

Создайте определяемую пользователем переменную и используйте ее в своем триггере:

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

Но почему бы вам не использовать хранимую процедуру для этого?С триггером все может пойти не так, вы можете забыть установить переменную.

...