使用计数触发分割金额不按预期工作

时间:2013-09-26 19:13:29

标签: mysql triggers insert count

我试图将新数据添加到付款表,它应该按总用户数量来计算 并且只添加输入到账单表中的新数据。 然而,它只是每次都添加它们而不是新数据。

有人可以帮我吗?

    DELIMITER //
CREATE TRIGGER `newPayment` 
AFTER INSERT ON `bills`
FOR EACH ROW INSERT INTO payments (name, bill, DueDate, Value)
SELECT users.name, bills.Company, bills.billDueDate, bills.Amount/(SELECT COUNT(name) FROM users)
FROM bills, users
WHERE bills.Company=bills.Company AND users.name=users.name
//
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您正在从账单表中选择所有记录,因为您没有引用任何关于触发触发器的行。

AFTER INSERT触发器中,有一个名为NEW的别名引用刚插入的行。大概你的意思是做这样的事情:

WHERE bills.Company=NEW.Company

这将选择'账单'中的行,公司与您刚刚插入的行中的公司相同。

但是,我不知道“用户”在哪里,但预计您打算从帐单JOIN用户ON中选择一些标准。