MYSQL:编写一个触发器,在向表中插入新行时,在单独的表中记录消息“插入新行”和插入时间

bogh5gae  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(129)

我有下表:

CREATE TABLE Employees (
  EmployeeID INT,
  LastName varchar(20) NOT NULL,
  FirstName varchar(20) NOT NULL,
  Birthdate date 
);

我需要编写一个触发器来记录消息“A new row is inserted”,以及在Employees表中插入新行时插入到名为Employees_audit的新的单独表中的时间。
我被这个问题难住了,我看了一些例子来帮助我,但是我不知道该怎么做。任何帮助都非常感谢。

d5vmydt9

d5vmydt91#

参考和here
请考虑下列表格:

CREATE TABLE Employees (
  EmployeeID INT,
  LastName varchar(20) NOT NULL,
  FirstName varchar(20) NOT NULL,
  Birthdate date 
);

create table Employees_audit (
  note varchar(255),
  inserted_record_dt datetime,
  EmployeeID int
);

您需要的触发器:

create trigger Insert_Employees_audit after insert on Employees
 for each row
 begin
 insert into Employees_audit (EmployeeID,note, inserted_record_dt) values (new.EmployeeID,'A new row is inserted',  now());
end

一些数据示例

insert into Employees values (1,'Test','Test','2000-01-01');

结果:

select * 
from Employees_audit;

           note         inserted_record_dt     EmployeeID
A new row is inserted   2022-11-21 10:01:34        1

https://dbfiddle.uk/KGa4ditu

相关问题