【发布时间】:2019-05-09 07:04:11
【问题描述】:
我正在做一个项目,但我卡在了这个触发器上。这是涉及的两个表。
---------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+----------------+
| id_tra | int(11) | NO | PRI | NULL | auto_increment |
| nombre_tra | varchar(100) | NO | | NULL | |
| apellidos_tra | varchar(100) | NO | | NULL | |
| dni_tra | varchar(1000) | NO | | NULL | |
| telefono_tra | int(10) | NO | | NULL | |
| falta_tra | date | NO | | NULL | |
| dias_tra | int(255) | NO | | NULL | |
+---------------+---------------+------+-----+---------+----------------+
+--------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------+------+-----+---------+----------------+
| id_rec | int(11) | NO | PRI | NULL | auto_increment |
| id_tra_rec | int(11) | NO | MUL | NULL | |
| id_var_rec | int(11) | NO | MUL | NULL | |
| fecha_rec | date | NO | | NULL | |
| cantidad_rec | int(255) | NO | | NULL | |
+--------------+----------+------+-----+---------+----------------+
在这种情况下,id_tra 和 id_tra_rec 是相关的,我需要一个触发器来更新 dias_tra on dias_tra + 1 for id_tra = id_tra_rec 当有 在第二个表格图像上插入。 这相对容易,但奇怪的是插入可能有不同的数据但日期相同(fecha_rec),因此触发器必须知道是否存在具有相同id和相同日期的行(fecha_rec) 以不更新 dias_tra。像选择不同的东西。这是我尝试过的:
create trigger dias_tra
after insert on datos_recogida
for each row
begin
if (select fecha_rec from datos_recogida where id_tra_rec=new.id_trarec and fecha_rec=new.fecha_rec)
update datos_trabajadores set dias_tra = dias_tra +1 where id_tra=new.id_tra_rec
end if;
end;
对不起,我的英语,第一次来,希望你能理解。如果您需要更多信息,我在这里:)
【问题讨论】:
-
尝试如果不存在测试。并且每个 if 都需要 THEN 并且您似乎没有设置分隔符,
标签: mysql date triggers insert