我已经在这个问题上停留了大约2个小时,而我对于该怎么做真的一无所有。有人知道为什么更新此触发器有效吗,
CREATE TABLE employees_audit (
id INT AUTO_INCREMENT PRIMARY KEY,
employeeNumber INT NOT NULL,
lastname VARCHAR(50) NOT NULL,
changedat DATETIME DEFAULT NULL,
action VARCHAR(50) DEFAULT NULL
);
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON employees
FOR EACH ROW
INSERT INTO employees_audit
SET action = 'update',
employeeNumber = OLD.employeeNumber,
lastname = OLD.lastname,
changedat = NOW();
并且更新此触发器会给我一个错误。我通过简单的更新来更新表,并使用两个代码中的where子句来设置代码。
CREATE TABLE Salespeople_audit(
EmpID INT AUTO_INCREMENT PRIMARY KEY,
FName Varchar(25) NOT NULL,
LName Varchar(25) NOT NULL
);
CREATE TRIGGER before_Salepeople_update
BEFORE UPDATE ON Salespeople
FOR EACH ROW
INSERT INTO Salespeople_audit
SET action = 'update',
EmpID = OLD.EmpID,
FName = OLD.FName;
您使用保留字作为列名。有关更多信息,您可以检查this document。
此行
action VARCHAR(50) DEFAULT NULL
应该是
action1 VARCHAR(50) DEFAULT NULL
(或任何非保留字)