这是我第一次使用mysql,我正在努力学习如何使用触发器。
我有两个表:lpr_upload和lpr_traveltime。 我的lpr_upload表看起来像这样
+----------+---------+--------+-----------+
| date_time | site_id | lane_id| lpr_text |
+----------+---------+--------+-----------+
每当我在lpr_upload中添加一个新行时,我想检查新行的lpr_tex是否已存在于表中。如果它已经存在,我想用lpr_text和new datetime - old datetime在lpr_traveltime中添加一个新行。这就是我到目前为止所做的:
插入lpr_opt_travel_times(travel_time,lpr_text) 重复键更新时的值(选择TIMEDIFF(new.date_time,...),lpr_text)...
我不知道如何完成这个。另外,我如何从表中已存在的行中获取date_time?
答案 0 :(得分:1)
试试这个:
declare ldt_date_time datetime;
select date_time into ldt_date_time from tbl where tbl.lpr_text = NEW.lpr_text and date_time <> NEW.date_time;
if ldt_date_time is not null then
insert into lpr_opt_travel_times(travel_time, lpr_text) values (ldt_date_time, NEW.lpr_text);
end if;
使用日期时间数据类型声明一个var,因为我假设列date_time是datetime类型。
从NEW magic table中选择插入的lpr_text的date_time值,但其date_time与插入的不同。
如果var为null意味着没有发生任何赋值并且var保留了初始缺省值NULL,那么使用var和插入的lpr_text
将行插入到另一个表中