同じトリガーイベントとアクション時間に対して複数のMySQLトリガーを作成するにはどうすればよいですか?
MySQL 5.7.2+を使用すると、テーブル内の同じイベントとアクション時間に対して複数のトリガーを作成できます。イベントが発生すると、両方のトリガーが順番にアクティブになります。例の助けを借りて理解することができます-
この例では、BEFOREUPDATEなどの同じイベントに対して複数のトリガーを作成しています。トリガーの名前は「Studentdetail_before_update」と「Studentdetail_before_update2」です。イベントが発生すると、順次アクティブになります。次のデータを持つテーブル「Student_detail」にこれらのトリガーを作成しています-
mysql> Select * from Student_detail; +-----------+-------------+------------+ | Studentid | StudentName | address | +-----------+-------------+------------+ | 100 | Gaurav | Delhi | | 101 | Raman | Shimla | | 103 | Rahul | Jaipur | | 104 | Ram | Chandigarh | | 105 | Mohan | Chandigarh | +-----------+-------------+------------+ 5 rows in set (0.06 sec) mysql> Delimiter //
次のクエリを使用して、最初のトリガーを作成します。これは、前と同じクエリで作成されます。
mysql> Create Trigger studentdetail_before_update -> BEFORE UPDATE -> ON Student_detail -> FOR EACH ROW -> BEGIN -> DECLARE AUSER Varchar(40); -> SELECT USER() into AUSER; ->INSERT INTO Student_detail_updated(studentid, Updated_date,Updated_by) values(OLD.studentid,NOW(),AUSER); -> END; // Query OK, 0 rows affected (0.17 sec) mysql> Update student_detail SET Address = 'Ludhiana' Where studentName = 'Ram'; Query OK, 1 row affected (0.15 sec) Rows matched: 1 Changed: 1 Warnings: 0
上記で作成したトリガーを呼び出した後、次の結果が得られました-
mysql> Select * from student_detail_updated; +-----------+---------------------+----------------+ | studentid | Updated_date | Updated_by | +-----------+---------------------+----------------+ | 104 | 2017-11-22 16:17:16 | root@localhost | +-----------+---------------------+----------------+ 1 row in set (0.00 sec)
これで、同じイベントとアクション時間の2番目のトリガーを次のように作成できます-
mysql> Create Trigger studentdetail_before_update2 -> BEFORE UPDATE -> ON Student_detail -> FOR EACH ROW FOLLOWS studentdetail_before_update -> BEGIN -> DECLARE AUSER Varchar(40); -> SELECT USER() into AUSER; -> INSERT INTO Student_detail_updated(studentid, Updated_date,Updated_by) values(OLD.studentid,NOW(),AUSER); -> END; // Query OK, 0 rows affected (0.15 sec)
上記のトリガーは、キーワード「FOLLOWS」を使用しているため、最初のトリガーの後にアクティブになります。
mysql> Update Student_detail SET Address = 'Patiala' WHERE studentname = 'Mohan'; Query OK, 1 row affected (0.08 sec) Rows matched: 1 Changed: 1 Warnings: 0
ここで、値を更新すると、次の結果セットには、同じイベントとアクション時間の2つの行が表示されます。 2行目はstudentdetail_before_updateトリガー後の値を表し、3行目はstudentdetail_before_update2トリガー後の値を表します。
mysql> Select * from student_detail_updated; +-----------+---------------------+----------------+ | studentid | Updated_date | Updated_by | +-----------+---------------------+----------------+ | 104 | 2017-11-22 16:17:16 | root@localhost | | 105 | 2017-11-22 16:19:28 | root@localhost | | 105 | 2017-11-22 16:19:28 | root@localhost | +-----------+---------------------+----------------+ 3 rows in set (0.00 sec)
-
MySQLで同時に複数のデータを入力しますか?
以下は構文です- insert into yourTableName values(yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), (yourValue1,yourValue2,.....N), . . . N テーブルを作成しましょう- mysql> create table demo56 −> ( −> id int, −> first_name varchar(20), −&
-
Tkinterで同時に複数のキャンバスを表示するにはどうすればよいですか?
Canvasウィジェットは、Tkinterの用途の広いウィジェットの1つであり、アプリケーションでイラストを作成したり、図形、円弧、画像、その他の複雑なレイアウトを描画したりするために使用されます。 Canvasウィジェットを作成するには、 canvas(root、** options)のコンストラクターを作成する必要があります。 。 ファクトリ関数を使用して、テキスト、画像、円弧を作成したり、キャンバスに他の形状を定義したりできます。場合によっては、同じキャンバスを使用して別のキャンバスを作成し、アプリケーションワークフローの一貫性を維持したい場合は、別のキャンバスを作成するイベントを呼び