我是使用 MySQL 的触发器的新手。
我通过考虑日期编写了将行复制到另一个表的触发器。
CREATE TRIGGER `new` AFTER INSERT ON `employee`
FOR EACH ROW
insert into employee_log (first_name, last_name)
select first_name, last_name from employee
where start_date = '2013-07-11'
我的员工表start_date
格式是date
. 如何获取当前日期start_date = '2013-07-12'
?
我尝试start_date = now()
了触发器,但没有复制任何内容。
下面提供了我的employee
表结构。
CREATE TABLE `employee` (
`id` int(11) DEFAULT NULL,
`first_name` varchar(30) DEFAULT NULL,
`last_name` varchar(15) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` varchar(10) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
`description` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
当向该表插入记录时,触发器检查start_date
是今天/当前日期,然后将行复制到employee_log
表中。
CREATE TABLE `employee_log` (
`id` int(11) DEFAULT NULL,
`first_name` varchar(50) DEFAULT NULL,
`last_name` varchar(50) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`description` varchar(50) DEFAULT NULL,
`Lasinserted` time DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;