私は次のような2つのテーブルを持っています:
fee_master(id,cTId,feeType,amount,startDate,lastDate,fine_last_date,fine,status)
payroll(id,emId,date,loan,netSalary)
私は次のようなトリガーを作成しようとしています:
DELIMITER $$
DROP TRIGGER IF EXISTS test
DELIMITER $$;
CREATE TRIGGER test
BEFORE DELETE ON fee_master
FOR EACH ROW
UPDATE payroll SET loan=OLD.amount,netSalary=OLD.fine WHERE id=18;
DELIMITER $$;
delete from fee_master where id='18';
このトリガーを実行すると、データはfee_masterから削除されますが、給与は更新されません。また、給与を挿入しようとしましたが、機能しません。データがfee_masterから削除されるたびに。
更新を変更し、トリガーを使用してクエリ位置を削除すると、問題ありません。実はトリガー操作では動作していません。何が問題ですか ?
あなたはトリガーに不慣れかもしれません。
あなたの質問によると、最初にここからトリガーの基本を読むことをお勧めしますhttp://www.sitepoint.com/how-to-create-mysql-triggers/
それは保存されたプロセスであることを思い出してください。毎回トリガーを実行する必要はありません。ここで混乱していることを願っています。トリガーを作成した後、マスタークエリを実行する必要があります。その後、トリガーは自動的に次の操作を実行します。
あなたのコードは大丈夫です。そして、Barmarのコードも大丈夫です。あなたの理解の主な問題。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加