我试图将新数据添加到付款表,它应该按总用户数量来计算 并且只添加输入到账单表中的新数据。 然而,它只是每次都添加它们而不是新数据。
有人可以帮我吗?
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 ;
答案 0 :(得分:0)
您正在从账单表中选择所有记录,因为您没有引用任何关于触发触发器的行。
在AFTER INSERT
触发器中,有一个名为NEW
的别名引用刚插入的行。大概你的意思是做这样的事情:
WHERE bills.Company=NEW.Company
这将选择'账单'中的行,公司与您刚刚插入的行中的公司相同。
但是,我不知道“用户”在哪里,但预计您打算从帐单JOIN
用户ON
中选择一些标准。