这是我的代码:
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中的新日期更改字段日期的最后日期。
@EDIT
我正在尝试更改我的触发器,因此它将更新字段“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'
......: - (
答案 0 :(得分: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;