0

支払いテーブルに新しいデータを追加しようとしています。合計ユーザーで金額を分割し、請求テーブルに入力された新しいデータのみを追加する必要があります。ただし、新しいデータではなく、毎回すべてを追加するだけです。

誰でも私を助けてもらえますか?

    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 ;
4

1 に答える 1

0

トリガーを起動した行について何も参照していないため、請求書テーブルからすべてのレコードを選択しています。

トリガー内には、挿入されたばかりの行を参照AFTER INSERTするというエイリアスがあります。NEWおそらく、次のようなことをするつもりです:

WHERE bills.Company=NEW.Company

これにより、挿入した行の会社と同じ会社である「請求書」の行が選択されます。

JOINただし、請求書のユーザーからON何らかの基準で選択することを期待していますが、「ユーザー」がどこにあるのかわかりません。

于 2013-09-26T20:01:36.980 に答える