ホームページ >データベース >mysql チュートリアル >DELIMITER // MySQL トリガーでどのような役割を果たしますか?
DELIMITER // ステートメントのセミコロン (;) を // に変更するために使用できます。トリガー内でセミコロンを使用して複数のステートメントを記述できるようになりました。
これはトリガーのデモです。この例では、EmployeeSalary に 1000 未満を入力すると、デフォルトで 10000 になります。
まず、テーブルを作成しましょう。テーブルを作成するクエリは次のとおりです。 -
mysql> create table EmployeeTable -> ( -> EmployeeId int, -> EmployeeName varchar(100), -> EmployeeSalary float -> ); Query OK, 0 rows affected (0.76 sec)
テーブルを作成した後、挿入コマンドでトリガーを作成する必要があります。トリガーを作成するクエリは次のとおりです。
mysql> delimiter // mysql> create trigger CheckSalary before insert on EmployeeTable -> for each row if new.EmployeeSalary < 1000 then set -> new.EmployeeSalary=10000; -> end if; -> // Query OK, 0 rows affected (0.40 sec) mysql> delimiter ;
これで、insert コマンドを使用してトリガーを確認できるようになります。挿入された EmployeeSalary が 1000 未満の場合、エラーは表示されませんが、デフォルト値 (私が指定した 10000) が保存されます。
レコードを挿入するクエリは次のとおりです -
mysql> insert into EmployeeTable values(1,'Carol',500); Query OK, 1 row affected (0.25 sec)
次に、select ステートメントを使用して、テーブル内のすべてのレコードを確認します。クエリは次のとおりです。
mysql> select *from EmployeeTable;
以下は出力です。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Carol | 10000 | +------------+--------------+----------------+ 1 row in set (0.00 sec)
1000以上を入力すると番号のみが表示されます。 truncate コマンドを使用して、テーブルから以前のレコードを削除しました。
mysql> truncate table EmployeeTable; Query OK, 0 rows affected (1.44 sec)
テーブルにレコードを挿入するクエリ。
mysql> insert into EmployeeTable values(2,'Bob',1000); Query OK, 1 row affected (0.14 sec) mysql> insert into EmployeeTable values(3,'Carol',2500); Query OK, 1 row affected (0.19 sec)
これは、select ステートメントを使用してテーブル内のすべてのレコードをチェックするクエリです。
mysql> select *from EmployeeTable;
以下は出力です。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+ 2 rows in set (0.00 sec)
上記の出力例を見ると、EmployeeSalary は 1000 以上です。これで給料がもらえます。 1000 未満の場合、デフォルト値は 10000 に設定されることに注意してください。
以上がDELIMITER // MySQL トリガーでどのような役割を果たしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。