DELIMITER $$
CREATE TRIGGER `tr_tblEmployee_Update` BEFORE UPDATE ON `tblEmployee` FOR EACH ROW
BEGIN
DECLARE id int; DECLARE OldGender varchar(10); DECLARE NewGender varchar(10); DECLARE NewName varchar(50); DECLARE OldName varchar(50);
DECLARE OldSalary int; DECLARE NewSalary int; DECLARE OldID_Dep int; DECLARE NewId_Dep int;
DECLARE AuditString varchar(300);
SET id = ID_Employee; SET NewGender = Gender; SET NewName = Name; SET NewSalary = Salary; SET NewID_Dep = ID_Dep;
SET OldGender = Gender; SET OldName = Name; SET OldSalary = Salary; SET OldID_Dep = ID_Dep;
SET AuditString = concat('Employee with id = ',id,' changed: ')
IF(OldName<>NewName)
SET AuditString = concat(AuditString, 'Name from ',OldName,' to ',NewName);
IF(OldGender<>NewGender)
SET AuditString = concat(AuditString, ' Gender from ',OldGender,' to ',NewGender);
IF(OldSalary<>NewSalary)
SET AuditString = concat(AuditString, ' Salary from ',OldName,' to ',NewName);
IF(OldDep<>NewDep)
SET AuditString = concat(AuditString, ' Department from ',OldName,' to ',NewName);
INSERT INTO tblemployeeaudit(AuditData) VALUES(AuditString);
END
$$
DELIMITER ;
こんにちは、同じ変数(AuditString)で複数回concat関数を使用したいのですが、試行するたびにエラーが発生します。それをするために。関数concat()で同じ変数を複数回使用する方法
エラー - #1064 - SQL構文に誤りがあります。右側の構文 の近くに使用するマニュアルの を確認してください。SET AuditString = concat(AuditString、 'Name from'、Ol '... at line 12
あなたは、MySQLやMS SQL Serverを使用していますか? (含まれていない製品にはタグを付けないでください) – jarlh
エラーメッセージも投稿してください – Rahul
私はMySqlを使用しています。 –