0

まず、このトリガーの更新が機能するのはなぜですか?

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();

このトリガーを更新すると、エラーが発生します。単純な update でテーブルを更新し、両方のコードで 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;
4

1 に答える 1