Mysql 触发器:将日期从一个表移动到另一个表
这是我的密码:Mysql 触发器:将日期从一个表移动到另一个表,mysql,sql,triggers,Mysql,Sql,Triggers,这是我的密码: create trigger term_ost after update on `payments` for each row begin UPDATE `current` s INNER JOIN payments w ON w.id_thing = s.id_thing INNER JOIN payments w ON w.id= s.id SET s.`new_pay_date` = w.date; end; $$ 它不起作用了 我希望它设置新的日期后,有人购买的东西有
create trigger term_ost after update on `payments`
for each row
begin
UPDATE `current` s
INNER JOIN payments w ON w.id_thing = s.id_thing
INNER JOIN payments w ON w.id= s.id
SET s.`new_pay_date` = w.date;
end;
$$
它不起作用了
我希望它设置新的日期后,有人购买的东西有新的付款和改变的最后一个日期是在字段日期与新的一个从新的支付日期
@编辑
我正在尝试更改触发器,以便在将字段日期插入付款后,它将从当前字段更新字段“new_pay_date”
表电流:
curr_cash
new_pay_date
id_person
id_thing
sum_of_things
总结:
当我将新数据添加到付款中(例如,某人为某件东西付款)时,我希望更新当前表中他最后一次付款的时间。在“东西的总和”中,它将客户支付的所有款项相加
@编辑
在此代码之后:
CREATE TRIGGER term_ost AFTER INSERT ON `payments`
FOR EACH ROW
BEGIN
UPDATE `current`
SET s.`new_pay_date` = NEW.date
WHERE
s.id_thing = NEW.id
END;
有一个错误:
INSERT INTO `mydb`.`payments` (
`id` ,
`date` ,
`id_thing` ,
`thing_cost`
)
VALUES (
'12312312322', '2012-12-11 15:00:00', '1', '500'
)
MySQL comment:
#1054 - Unknown column 's.new_pay_date' in 'field list'
…:-(您多次使用同一个表别名
w
,这是不允许的。您似乎想在多个列上联接:
CREATE TRIGGER term_ost AFTER INSERT ON `payments`
FOR EACH ROW
BEGIN
UPDATE `current`
SET `new_pay_date` = NEW.date
WHERE
id_thing = NEW.id
END;
可能是因为“payments w”的双连接定义。在w.id\u thing=s.id\u thing和w.id=s.id\u thing上尝试
内部连接payments w。是的,好的。但我对它做了一点更改,在inster转换为payments后需要更新表current。不更新。当我更改时"更新payments
以指示付款。我得到一个错误,付款中没有列名称new\u pay\u date。因为没有,所以我想更改的是current。您能否更新问题中的触发器定义,并简要介绍current
表的结构?请查看更新后的响应。您需要参考添加到包含插入的记录的NEW
表。另外,您不需要加入,只需使用NEW
表中的日期和id来标识current
中应该更新的记录。它不起作用。顺便说一句,id\u thing是项目的id,id本身是个人的id。因此我无法比较它们。Ch把它改成NEW.id\u东西,但还是没有希望。哎呀,没有别名,我的错!我更正了触发器定义。