0

トリガーの作成/内部(何と呼ばれるかわからない)の行をカウントしたい。

私がトリガーを持っているように:

CREATE
DEFINER=`root`@`localhost`
TRIGGER `mydb`.`tn_air_staff_leave_application`
AFTER INSERT ON `mydb`.`staff_leave_application`
FOR EACH ROW
BEGIN
----
----
----
END$$

トリガーが作成する行数を知りたい場合は、トリガー内に次の値が必要です。

set @newrows:= (select count(*) from tn_air_staff_leave_application); 

出来ますか??他の解決策がない場合は???

4

1 に答える 1

1

トリガーは、データベース内のテーブルから行が挿入、更新、または削除される前または後に実行される、純粋にパッシブなコードです。

トリガーをアクティブに実行することはできません。したがって、読み取ることができる戻り値がありません。

できることは、トリガーに値を別のテーブルまたはセッション変数に書き込んでもらい、それを追加のクエリで照会できるようにすることです。

例で試しているように、結果行全体または複数の行の結果セットをセッション変数に格納することはできません。

MySQLでは、トリガーは常に実行されFOR EACH ROWます。つまり、トリガー内では、複数の行ではなく、1つの行のみが表示されます。

編集:

実際、サンプルクエリは単一の値を返すため、これは機能します。(テーブル内の合計レコードの量をtn_air_staff_leave_applicationローカルセッション変数に配信します@newrows

より具体的なヘルプについては、何をしようとしているのかをより具体的にする必要があります

于 2013-01-22T08:23:55.003 に答える