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 ;
你好,我想用concat函数使用同一个变量(AuditString)多次,但每次我试图我得到一个错误去做吧。如何使用功能CONCAT相同的变量多于一次()的MySQL
错误 - #1064 - 您的SQL语法错误;检查对应于您MariaDB的服务器版本正确的语法 使用手动 附近“IF(OLDNAME!=新名称) SET AuditString = CONCAT(AuditString,‘名称从’,01” ......在第12行
你使用MySQL或MS SQL Server? (不要标记不涉及的产品。) – jarlh
发布错误消息以及 – Rahul
我正在使用MySql,抱歉,我第一次在这里发帖。 –