错误1054(42s22):“字段列表”中的未知列“操作”

问题描述 投票:0回答:1

我已经在这个问题上停留了大约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;
mysql database triggers updating describe
1个回答
0
投票

您使用保留字作为列名。有关更多信息,您可以检查this document

此行

action VARCHAR(50) DEFAULT NULL

应该是

action1 VARCHAR(50) DEFAULT NULL

(或任何非保留字)

© www.soinside.com 2019 - 2024. All rights reserved.