在对 table 进行任何修改后使用触发器将受影响的行复制到新的 table
Using a trigger on a table after any modification to copy affected row into a new table
我想在 table 中插入、更新或删除任何行时创建此示例 table 的触发器。我以前从未使用过触发器,所以这将是我的第一个。
到目前为止我有这个代码:
DROP TRIGGER auditemployees
CREATE TRIGGER auditemployees AFTER INSERT ON employees
FOR EACH ROW
BEGIN
INSERT INTO employees_trigger select * from employees where emp_no = NEW.emp_no;
END;
现在的问题是:
我想将受影响的行复制到另一个 table 在这种情况下 employees_trigger,但是为了复制整行并传递值,我能想到的就是使用变量对于我认为听起来效率低下的每个字段,因为如果我有 50 个字段,我将不得不使用 50 个变量,然后将所有这些值插入新的 table。
有什么更好更有效的方法吗?
我也收到错误:
> ERROR 1064 (42000): You have an error in your SQL syntax; check the
> manual that corresponds to your MySQL server version for the right
> syntax to use near 'CREATE TRIGGER auditemployees AFTER INSERT ON
> employees
每个语句都需要终止 -- DROP
语句末尾没有 ;
。
您缺少 DELIMITER
语句,并且您没有为 CREATE
使用不同的分隔符。
50 个变量的 OLD.*
有什么问题?
我想在 table 中插入、更新或删除任何行时创建此示例 table 的触发器。我以前从未使用过触发器,所以这将是我的第一个。
到目前为止我有这个代码:
DROP TRIGGER auditemployees
CREATE TRIGGER auditemployees AFTER INSERT ON employees
FOR EACH ROW
BEGIN
INSERT INTO employees_trigger select * from employees where emp_no = NEW.emp_no;
END;
现在的问题是:
我想将受影响的行复制到另一个 table 在这种情况下 employees_trigger,但是为了复制整行并传递值,我能想到的就是使用变量对于我认为听起来效率低下的每个字段,因为如果我有 50 个字段,我将不得不使用 50 个变量,然后将所有这些值插入新的 table。
有什么更好更有效的方法吗?
我也收到错误:
> ERROR 1064 (42000): You have an error in your SQL syntax; check the
> manual that corresponds to your MySQL server version for the right
> syntax to use near 'CREATE TRIGGER auditemployees AFTER INSERT ON
> employees
每个语句都需要终止 -- DROP
语句末尾没有 ;
。
您缺少 DELIMITER
语句,并且您没有为 CREATE
使用不同的分隔符。
50 个变量的 OLD.*
有什么问题?