0

这是我的代码:

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 中的新日期。

@编辑

我正在尝试更改我的触发器,以便在将字段日期插入付款后从当前更新字段“new_pay_date”。

表电流:

curr_cash
new_pay_date
id_person
id_thing
sum_of_things

摘要:当我向付款添加新数据时(例如某人为某物付款),我想在当前表中更新他的最后付款时间。在“sum_of_things”中,它汇总了客户支付的所有款项。

@edit 在这段代码之后:

    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'

... :-(

4

1 回答 1

0

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;
于 2012-12-03T13:52:02.327 回答